Mybatis:(六)注解

mrsuddenflash 2020-02-23

一、前言

利用mybatis注解开发,就不需要mapper.xml文件了,只需要在核心配置文件中导入即可,提高了开发效率

二、CRUD(注解)

  1. 查询

    1. 在接口中添加注解

      //查询全部用户
      @Select("select id,name,pwd password from user")
      public List<User> getAllUser();
    2. 在核心配置文件中导入

    3. 测试

  2. 增删改

  3. 改变utils工具类中的方法

//获取SqlSession连接
public static SqlSession getSession(){
    return getSession(true); //事务自动提交
}

public static SqlSession getSession(boolean flag){
    return sqlSessionFactory.openSession(flag);
}
//注意:确保实体类和数据库字段对应
  1. 编写Mapper接口
//添加一个用户
@Insert("insert into user (name,pwd) values (#{name},#{pwd})")
int addUser(User user);
  1. 测试
@Test
public void testAddUser() {
    SqlSession session = MybatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);

    User user = new User("路飞", "123456");
    mapper.addUser(user);
    session.close();
}
## 三、mybatis详细执行流程

Mybatis:(六)注解

四、@param

  • 使用技巧

    • 在方法只有一个参数的情况下,可以不使用@Param
    • 方法有多个参数的情况下,建议使用@Param注解给参数命名
    • 如果参数是 JavaBean , 则不能使用@Param。
    • 不使用@Param注解时,参数只能有一个,并且是Javabean。

五、#{}与${}的区别

  • #{} 会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
  • ${} 把 ${ } 替换成变量的值,完成的是简单的字符串拼接。
  • mybatis中使用#{}可以防止sql注入,提高系统安全性。

相关推荐