Dao 接口里的方法,是不能重载的,因为是全限名+方法名的保存和寻找策略。
Dao 接口的工作原理是 JDK 动态代理,Mybatis 运行时会使用 JDK 动态代理为
Dao 接口生成代理 proxy 对象,代理对象 proxy 会拦截接口方法,转而执行 M
appedStatement 所代表的 sql,然后将 sql 执行结果返回。
Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行
的内存分页,而非物理分页,可以在 sql 内直接书写带有物理分页的参数来完
成物理分页功能,也可以使用分页插件来完成物理分页。
分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插
件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加
对应的物理分页语句和物理分页参数。
答:第一种是使用<resultMap>标签,逐一定义列名和对象属性名之间的映射
关系。第二种是使用 sql 列的别名功能,将列别名书写为对象属性名,比如 T_
NAME AS NAME,对象属性名一般是 name,小写,但是列名不区分大小写,My
batis 会忽略列名大小写,智能找到与之对应对象属性名,你甚至可以写成 T_
NAME AS NaMe,Mybatis 一样可以正常工作。