MyBatis

1、#{}和${}的区别是什么?

#{}是预编译处理,${}是字符串替换。

Mybatis会将sql的#{}替换为?,防止sql注入。将${}替换为变量的值。

2、Xml文件和Dao接口的对应

  • Xml文件的namespace的值是接口的全限名
  • 接口的方法名是id值

3、如何分页

Mybatis使用RowBounds对象进行分页,指定RowBounds的参数,可以指定起始点和抓取的行数。

4、Mybatis是否支持延迟加载

进支持association(一对一)关联对象和collection(一对多)关联对象的延迟加载,

lazyLoadingEnabled=true

5、Mybatis是如何将sql结果封装为目标对象并返回的?有哪些映射形式?

  • ResultMap——逐一定列名和属性的映射关系。

有了列名和属性的映射关系后,Mybatis使用反射创建对象,并返回。

6、除了select|insert|update|delete标签外。还有哪些标签

if。

相关推荐