Mybatis常见问题
1、MyBatis和ORM的区别: mybatis属于半orm,因为sql语句需要自己写。mybatis 并没有将 java 对象与数据库关联起来,而是将 java 方法与 sql 语句关联起来
2、MyBatis实现分页:
- Mysql数据库: limit, 需要自己处理分页逻辑
- 使用PageHelper插件
3、#{}, ${} :
- #{} : 预编译处理, 传进来的数据会 加 单引号
- ${} : 字符串替换, 直接替换掉占位符, 为了防止 SQL 注入,能用 #{} 的不要去用 ${}
4、MyBatis接口绑定的几种方式
- 使用注解, 在接口的方法上面添加 @Select @Update等注解
- 使用xml文件,xml映射文件中的namespace对应的接口的全路径名。当SQL语句比较简单的时候,使用注解绑定就可以了,当SQL语句比较复杂的话,使用xml方式绑定,一般用xml方式绑定比较多
5、DAO不可以重载, 方法名对应的 mapper.xml 文件里的一个 id,这个与方法名对应,系统会根据 namespace+id 找到对应的方法对应。
6、Mybatis 可以映射枚举类。
7、MyBatis不同映射文件中的id可以重复
8、传递多个参数给mapper:
- @Param
- 使用 java对象
参考: W3C Mybatis教程