Mybatis注解开发

系统管理员 2022-11-27 12:13 265阅读 0赞

注释开发

SQL类型主要分成:

  • @select()
  • @update()
  • @insert()
  • @delete()

在之前的开发中,我们使用mybatis,需要
1,配置文件
2,然后创建dao接口,定义方法
3,再然后就要创建mapper.xml文件,在mapper.xml文件中编写sql语句,
4,最后再把mapper文件配置在mybatis主配置文件中就可以进行测试了
首先修改主配置文件,。由之前 < mapper resource=“cn/com/dao/IUserDao.xml”/> 改成下面的class

  1. <mappers>
  2. <mapper class="cn.com.Ycy.mybatis.dao.userDao"/>
  3. </mappers>

代码如下

  1. 在接口中
  2. //查询所有user信息
  3. @Select("select * from user")
  4. List<user>selectAll();
  5. 测试类中
  6. @Test
  7. public void test1(){
  8. userDao users = mybatisUtils.getSqlSession().getMapper(userDao.class);
  9. List<user> u = users.selectAll();
  10. for(user user: u){
  11. System.out.println(user);
  12. }
  13. }
  14. 在接口中
  15. @Update("update user set username=#{name} where id=#{id}")
  16. int UpdateUser(@Param("id")int id,@Param("name")String name);
  17. 在测试类:
  18. @Test
  19. public void test4(){
  20. SqlSession sqlSession = mybatisUtils.getSqlSession();
  21. userDao users = sqlSession.getMapper(userDao.class);
  22. int i = users.UpdateUser(1, "麻子");
  23. System.out.println("更新了"+i+"条数据");
  24. //改变了数据库中的信息 就要提交事务
  25. sqlSession.commit();
  26. sqlSession.close();
  27. }

通过这两个例子,在对比xml配置开发,注释开发比较方便
但是注释开发的动态SQL就比较复杂,就是没有xml配置来的快,也没有xml看起来更舒服
代码附上:

  1. @Select("<script>select * from user <if test=\"id !=null \">where id > #{id} </if></script>")
  2. List<user>selectById(@Param("id") int id);

测试类:

  1. @Test
  2. public void test6(){
  3. SqlSession sqlSession = mybatisUtils.getSqlSession();
  4. userDao users = sqlSession.getMapper(userDao.class);
  5. List<user> userList = users.selectById(29);
  6. for(user user:userList){
  7. System.out.println(user);
  8. }
  9. sqlSession.close();
  10. }

在这里很明显,在java中写xml可读性和维护性太差,尤其当SQL很长时,就非常的麻烦

注释开发的增删改查

  1. //查询
  2. @Select("select * from user where id=#{id} or username=#{name}")
  3. List<user>selectSome(@Param("id")int id,@Param("name")String name);
  4. //插入
  5. @Insert("insert into user values(#{id},#{username},#{birthday},#{sex},#{address})")
  6. int insertUser(user user);
  7. //改
  8. @Update("update user set username=#{name} where id=#{id}")
  9. int UpdateUser(@Param("id")int id,@Param("name")String name);
  10. //删除
  11. @Update("delete from user where id=#{id} and username=#{username}")
  12. int DeleteUser(user user);

发表评论

表情:
评论列表 (有 0 条评论,265人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MyBatis注解开发

    除了XML映射方式,MyBatis还支持注解方式实现POJO对象和数据表之间的关联映射,使用注解的方式一般将SQL语句直接写到接口上。与XML的映射方式相比,基于注解的映射方式

    相关 Mybatis 注解开发

    这几年来注解开发越来越流行,Mybatis 也可以使用注解开发方式,这样我们就可以减少编写 Mapper 映射 文件了。本次我们先围绕一些基本的 CRUD 来学习,再学习复杂映