MyBatis(十四):注解实现增删改查

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

接上一篇,我们上一篇说到了不配置Mapper.xml文件,直接在接口中使用注解进行映射,这里我们将简单的增删改查全部用注解实现一遍。
一、设置自动提交事务
在去实现之前,我们先想一下我们前面实行增删改的事务时,每次都要手动提交事务,那么有没有什么方法可以自动提交呢,答案是有的。
修改我们的工具类MyBatisUtil.class
将getSqlSession()方法修改如下:
  1. public static SqlSession getSqlSession() {
  2.         return sqlSessionFactory.openSession(true);
  3.     }
复制代码
嗯,没错,只是加了一个true,但这就是自动提交事务的开关,默认情况下是关闭的。
二、在UserMapper接口中声明相应的方法并作注解
  1. package com.jms.dao;
  2. import com.jms.pojo.User;
  3. import org.apache.ibatis.annotations.Delete;
  4. import org.apache.ibatis.annotations.Insert;
  5. import org.apache.ibatis.annotations.Select;
  6. import org.apache.ibatis.annotations.Update;
  7. import java.util.List;
  8. public interface UserMapper {
  9.     @Select("select * from user")
  10.     List<User> getUserList();
  11.     //查
  12.     @Select("select * from user where id=#{id}")
  13.     User getUserByID(int id);
  14.     //增
  15.     @Insert("insert into user values(#{id},#{username},#{password})")
  16.     void insertUser(User user);
  17.     //改
  18.     @Update("update user set username=#{username},password=#{password} where id=#{id}")
  19.     void updateUser(User user);
  20.     //删
  21.     @Delete("delete from user where id=#{id}")
  22.     void deleteUser(int id);
  23. }
复制代码
三、junit测试
  1. package com.jms.dao;
  2. import com.jms.pojo.User;
  3. import com.jms.utils.MyBatisUtil;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.junit.Test;
  6. import java.util.List;
  7. public class UserMapperTest {
  8.     @Test
  9.     public void test() {
  10.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  11.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  12.         List<User> userList = userMapper.getUserList();
  13.         for (User user : userList) {
  14.             System.out.println(user);
  15.         }
  16.     }
  17.     @Test
  18.     public void select() {
  19.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  20.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  21.         User user = userMapper.getUserByID(10001);
  22.         System.out.println(user);
  23.     }
  24.     @Test
  25.     public void insert() {
  26.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  27.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  28.         userMapper.insertUser(new User(10020, "jms20", "123456"));
  29.     }
  30.     @Test
  31.     public void update() {
  32.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  33.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  34.         userMapper.updateUser(new User(10020, "JMS20", "1111111"));
  35.     }
  36.     @Test
  37.     public void delete() {
  38.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  39.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  40.         userMapper.deleteUser(10020);
  41.     }
  42. }
复制代码
首先我们执行查询全部,看一下目前表中的内容:

 
 然后我们执行根据id进行查询:

 
 
接下来我们去插入一行新的内容,并查询全部看是否插入成功:

 
 多了一行id为10020的,插入成功。
插入成功后我们执行update测试,并查询:

 
 修改成功。
最后删除我们刚刚插入的那条语句并查询:

 
 回到了最初的状态,删除成功。
以上就是使用注解映射来实现增删改查的简单应用了。
 
(本文仅作个人学习记录用,如有纰漏敬请指正)
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表