mybatis学习13:注解增删改查

mybatis学习13:注解增删改查

  • 注解增删改查:CRUD

    • 我们可以在工具类创建的时候实现自动提交事务

      public static SqlSession getSqlSession(){
         return sqlSessionFactory.openSession(true);//参数值true就是开启事务自动提交
      }

       

 

  • 使用注解查询语句:

    • 编写接口,增加注解:

      /**
      * 方法存在多个参数:所有的参数前面必须加上@Param(基本类型需要,但是引用类型不需要)
      * 真实执行的时候,SQL执行的参数值来自:@Param里面的值
      */
      @Select("select * from user where id=#{id} and name=#{name}")
      User getUserById(@Param("id") int id,@Param("name") String name);
    • 需要在核心配置文件上绑定接口:

      <!--绑定接口-->
      <mappers>
         <mapper class="com.ljxdemo.dao.UserMapper"/>
      </mappers>
    • 测试:

      @Test
      public void test(){
         SqlSession sqlSession = MybatisUtils.getSqlSession();
         //底层主要应用反射
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         User user = mapper.getUserById(1, "demo");
         System.out.println(user);
         //用完即关
         sqlSession.close();

      }

       

 

  • 使用注解增加语句:

    • 编写接口,增加注解:

      //增加用户
      //注意点:参数为引用类型时,不需要加@Param
      @Insert("insert into user (id,name,pwd) values(#{id},#{name},#{password}) ")
      int addUser(User user);
    • 需要在核心配置文件上绑定该接口

      <!--绑定接口-->
      <mappers>
         <mapper class="com.ljxdemo.dao.UserMapper"/>
      </mappers>
    • 测试:注意:当前已经在Mybatis工具类中设置了事务自动提交!

      @Test
      public void test(){
         SqlSession sqlSession = MybatisUtils.getSqlSession();

         //底层主要应用反射
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         int i = mapper.addUser(new User(7,"demo7","111111"));
         if(i>0){
             System.out.println("插入成功");
        }
         //用完即关
         sqlSession.close();

      }

       

 

  • 使用注解修改语句:

    • 编写接口,增加注解:

      //修改
      @Update("update user set name=#{name} , pwd=#{password} where id=#{id}")
      int updateUser(User user);
    • 需要在核心配置文件上绑定该接口

      <!--绑定接口-->
      <mappers>
         <mapper class="com.ljxdemo.dao.UserMapper"/>
      </mappers>
    • 测试:注意:当前已经在Mybatis工具类中设置了事务自动提交!

      @Test
      public void test(){
         SqlSession sqlSession = MybatisUtils.getSqlSession();

         //底层主要应用反射
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         int i = mapper.updateUser(new User(7,"demooo7","777777"));
         if(i>0){
             System.out.println("修改成功");
        }

         //用完即关
         sqlSession.close();

      }

       

 

  • 使用注解删除语句:

    • 编写接口,增加注解:

      //删除
      @Delete("delete from user where id=#{id} and name=#{name}")
      int deleteUser(User user);
    • 在核心配置文件上绑定该接口

      <!--绑定接口-->
      <mappers>
         <mapper class="com.ljxdemo.dao.UserMapper"/>
      </mappers>
    • 测试:注意:当前已经在Mybatis工具类中设置了事务自动提交!

      @Test
      public void test(){
         SqlSession sqlSession = MybatisUtils.getSqlSession();

         //底层主要应用反射
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         int i = mapper.deleteUser(new User(7,"demooo7",null));
         if(i>0){
             System.out.println("删除成功");
        }

         //用完即关
         sqlSession.close();

      }

 

 

  • 关于@Param()注解:

    • 基本类型的参树或者String类型,需要加上;

    • 引用类型不需要加;

    • 如果只有一个基本类型的参数,可以忽略,但是建议还是加上!

    • 我们在SQL中引用的就是我们这里的@Param(" ")中设定的属性名;

 

 

  • #{ } 和 ${ } :

    • #{ } 能很大程度上防止SQL注入;

    • ${ }不能防止SQL注入;

 

 

 

posted @   gzs1024  阅读(196)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示