Mybatis:(六)注解
一、前言
利用mybatis注解开发,就不需要mapper.xml文件了,只需要在核心配置文件中导入即可,提高了开发效率
二、CRUD(注解)
-
查询
-
在接口中添加注解
//查询全部用户 @Select("select id,name,pwd password from user") public List<User> getAllUser();
-
在核心配置文件中导入
-
测试
-
-
增删改
-
改变utils工具类中的方法
//获取SqlSession连接
public static SqlSession getSession(){
return getSession(true); //事务自动提交
}
public static SqlSession getSession(boolean flag){
return sqlSessionFactory.openSession(flag);
}
//注意:确保实体类和数据库字段对应
- 编写Mapper接口
//添加一个用户
@Insert("insert into user (name,pwd) values (#{name},#{pwd})")
int addUser(User user);
- 测试
@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详细执行流程
四、@param
-
使用技巧
- 在方法只有一个参数的情况下,可以不使用@Param
- 方法有多个参数的情况下,建议使用@Param注解给参数命名
- 如果参数是 JavaBean , 则不能使用@Param。
- 不使用@Param注解时,参数只能有一个,并且是Javabean。
五、#{}与${}的区别
#{}
会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;- ${} 把 ${ } 替换成变量的值,完成的是简单的字符串拼接。
- mybatis中使用#{}可以防止sql注入,提高系统安全性。