3、CRUD
3.1、namespace
namespace中的包名要和Dao/Mapper接口中的包名一致
3.2、select
id:就是对于namespace中的方法名
resultType:SQL语句执行的返回值
parameterType:参数类型 ;
(1)编写接口 UserDao.java
//获取全部用户
public List<User> getUserList();
//获取查询用户
public User getUserById(int num);
(2)编写Mapper文件 UserMapper.xml
<select id="getUserList" resultType="com.lin.pojo.User">
select * from mybatis.user
</select>
<select id="getUserById" resultType="com.lin.pojo.User" parameterType="int">
select * from user where id=#{num};
</select>
(3)测试 UserDaoTest.java
@Test
public void test(){
//1.获得SqlSession
SqlSession sqlSession= MybatisUtils.getSqlSession();
//2.(1)getMapper
// UserDao userDao=sqlSession.getMapper(UserDao.class);
// List<User> userList = userDao.getUserList();
//2.(2) 权限路径
List<User> userList = sqlSession.selectList("com.lin.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
@Test
public void getUserById(){
//获得SQL
SqlSession sqlSession = MybatisUtils.getSqlSession();
//通过SQLSession执行映射文件中定义的SQL,并返回映射结果
UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.getUserById(2);
// User user = sqlSession.selectOne("UserDao", 2);
System.out.println(user);
//关闭
sqlSession.close();
}
3.3、insert
(1)编写接口 UserDao.java
//插入用户
public int getInsert(User user);
public int addUser(Map<String,Object> map);
(2)编写Mapper文件 UserMapper.xml
<insert id="getInsert" parameterType="com.lin.pojo.User">
insert into mybatis.user (id,name,password) values (#{id},#{name},#{password});
</insert>
<insert id="addUser" parameterType="Map">
insert into mybatis.user (id,name,password) values (#{userid},#{uuname},#{password});
</insert>
(3)测试 UserDaoTest.java
// 增删改需要提交事务
@Test
public void getInsert(){
//获取SqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
//插入
User user=new User(4,"qiqi","741852");
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.getInsert(user);
if (i>0){
System.out.println("插入成功");
}else {
System.out.println("插入失败");
}
//提交事务
sqlSession.commit();
//关闭SqlSession
sqlSession.close();
}
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String,Object>map=new HashMap<String,Object>();
map.put("userid",5);
map.put("uuname","qinqin");
map.put("password","741852");
int i = mapper.addUser(map);
if (i>0){
System.out.println("插入成功");
}else {
System.out.println("插入失败");
}
sqlSession.commit();
sqlSession.close();
}
3.4、delete
(1)编写接口 UserDao.java
//删除用户
public int deleteUser(int i);
(2)编写Mapper文件 UserMapper.xml
<delete id="deleteUser" parameterType="int">
delete from user where id=#{i};
</delete>
(3)测试 UserDaoTest.java
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.deleteUser(4);
if (i>0){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
sqlSession.commit();
sqlSession.close();
}
3.5、update
(1)编写接口 UserDao.java
//修改用户
public int updateUser(User user);
(2)编写Mapper文件 UserMapper.xml
<update id="updateUser" parameterType="com.lin.pojo.User">
update user set name =#{name},password=#{password} where id=#{id};
</update>
(3)测试 UserDaoTest.java
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.updateUser(new User(4, "qinqin", "852963"));
if (i>0){
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
sqlSession.commit();
sqlSession.close();
}
注意增删改要提交事务
标签匹配问题
Map
假设,实体类或者数据库中参数值过多,用Map
多个参数用Map或注解