当前位置:   article > 正文

Mybatis注解开发实现增删改查(学习笔记11)_第4关:mybatis的注解方式实现增删改查

第4关:mybatis的注解方式实现增删改查

mybatis中注解开发没有xml方便,用的不是很多,但是在其它框架中注解开发是用的很多的

1、注解在接口上实现

  1. //根据姓名查找用户
  2. @Select("select * from mybatis1.user where id = #{id}")
  3. User getUserId(int id);

2、注解开发是在核心配置文件中绑定接口,而不是mapper.xml文件

  1. <!--Mybatis注解开发时需要绑定接口-->
  2. <mappers>
  3. <mapper class="com.li.dao.UserMapper"/>
  4. </mappers>

3、测试

  1. //根据id查询
  2. @Test
  3. public void test1(){
  4. SqlSession sqlSession = MybatisUtils.getSqlSession();
  5. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  6. User user = mapper.getUserId(1);
  7. System.out.println(user);
  8. sqlSession.close();
  9. }

增删改

抽象类:

参数有多个且是基本数据类型时、Sting类型时、

一定要在前面加上@Param("属性名")

引用数据类型可以不加,只有一个基本数据类型可以不加,建议都加上

因为我们在sql中引用的就是我们@Param("属性名")的属性名

  1. //新增一个用户
  2. @Insert("insert into mybatis1.user values (#{id},#{name},#{password})")
  3. int insertUser(User user);
  4. //删除一个用户
  5. @Delete("delete from mybatis1.user where id =10 ")
  6. int deleteUser(int id);
  7. //修改用户数据
  8. @Update("update mybatis1.user set name=#{name} where id =#{id};")
  9. int updateUser(User user);
  10. //查询全部用户的方法
  11. @Select("select * from mybatis1.user")
  12. List<User> getUserList();
  13. //根据姓名查找用户
  14. //参数有多个且是基本数据类型时一定要在前面加上@Param("参数名")
  15. @Select("select * from mybatis1.user where id = #{id} and name = #{name}")
  16. User getUserId(@Param("id") int id,@Param("name") String name);

测试类:

  1. //查
  2. @Test
  3. public void test1(){
  4. SqlSession sqlSession = MybatisUtils.getSqlSession();
  5. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  6. User userId = mapper.getUserId(1,"帅哥");
  7. System.out.println(userId);
  8. sqlSession.close();
  9. }
  10. //增
  11. @Test
  12. public void test2(){
  13. SqlSession sqlSession = MybatisUtils.getSqlSession();
  14. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  15. int in = mapper.insertUser(new User(10, "vvf", "123"));
  16. if(in > 0){
  17. sqlSession.commit();
  18. System.out.println("添加成功");
  19. }
  20. sqlSession.close();
  21. }
  22. //删
  23. @Test
  24. public void test3(){
  25. SqlSession sqlSession = MybatisUtils.getSqlSession();
  26. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  27. int in = mapper.deleteUser(10);
  28. if(in > 0){
  29. sqlSession.commit(); //提交事务
  30. System.out.println("删除成功");
  31. }
  32. sqlSession.close();
  33. }
  34. //改
  35. @Test
  36. public void test4(){
  37. SqlSession sqlSession = MybatisUtils.getSqlSession();
  38. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  39. int in = mapper.updateUser(new User(9, "大帅哥", "nn"));
  40. if(in > 0){
  41. sqlSession.commit(); //提交事务
  42. System.out.println("修改成功");
  43. }
  44. sqlSession.close();
  45. }

上面我们都是手动提交事务的,我们可以设置自动提交事务

  1. //获取SqlSession
  2. public static SqlSession getSqlSession(){
  3. //在这里设置一个true就把事务自动提交打开了
  4. return sqlSessionFactory.openSession(true);
  5. }

 openSession方法的重载有支持自动提交事务的实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/921918
推荐阅读
相关标签
  

闽ICP备14008679号