1、namespace
namespace中的包名要和接口的包名一致!
2、select
- id:就是对应的namespace中的方法名;
- resultType:SQL语句执行的返回值;
- parameterType:参数类型;
3、insert
4、update
5、Delete
【示例】测试CRUD
(1)编写接口;
package com.baidou.dao;
import com.baidou.pojo.User;
import java.util.List;
public interface UserMapper {
/**
* 获取全部的用户
*/
List<User> getUserList();
/**
* 通过ID获取用户
* @param id
* @return
*/
List<User> getUserById(int id);
/**
* 添加用户
* @param user
* @return
*/
int addUser(User user);
/**
* 修改用户信息
* @param user
* @return
*/
int updateUser(User user);
/**
* 删除用户
* @param id
* @return
*/
int deleteUser(int id);
}
(2)编写对应mapper的sql;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:绑定一个对应的Dao/Mapper接口 -->
<mapper namespace="com.baidou.dao.UserMapper">
<!-- select查询语句,id:绑定对应方法名,resultType:返回值类型 -->
<select id="getUserList" resultType="com.baidou.pojo.User">
select * from mybatis.user ;
</select>
<select id="getUserById" resultType="com.baidou.pojo.User" parameterType="int">
select * from mybatis.user where id = #{id} ;
</select>
<insert id="addUser" parameterType="com.baidou.pojo.User">
insert into mybatis.user (name, pwd) values(#{name},#{pwd}) ;
</insert>
<update id="updateUser" parameterType="com.baidou.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id} ;
</update>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id =#{id} ;
</delete>
</mapper>
(3)测试
package com.baidou.dao;
import com.baidou.pojo.User;
import com.baidou.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test() {
// 获取SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
// 方式一:getmapper
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
// 方式二:
// List<User> userList = sqlSession.selectList("com.baidou.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
@Test
public void getUserById() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> user = mapper.getUserById(1);
System.out.println(user);
// 关闭SqlSession
sqlSession.close();
}
@Test
public void addUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
System.out.println(mapper.addUser(new User("风清扬", "fenqingyang")) > 0 ? "添加成功" : "添加失败");
// 增删改需要提交事务
sqlSession.commit();
// 关闭SqlSession
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
System.out.println(mapper.updateUser(new User(3, "王富贵", "wangfugui")) > 0 ? "修改成功" : "修改失败");
// 提交事务
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
System.out.println(mapper.deleteUser(3) > 0 ? "删除成功" : "删除失败");
// 提交事务
sqlSession.commit();
// 关闭SqlSession
sqlSession.close();
}
}
注意:增删改需要提交事务!!!