MyBatis的Mapper动态代理
1. Mapper动态代理
mapper不使用动态代理是指dao层的实现自己创建,在接口实现类的方法中自己调用SqlSession完成对数据库的操作,这样只能向SQL中传递一个参数,多个参数要封装到POJO或者Map中,且调用SqlSession对象的方法时会有硬编码现象namespace+id
使用Mapper动态代理只需要写dao层接口,不需要创建dao层实现类,Mybatis会自动生成实现类的代理对象。在dao层只需要创建接口与映射文件即可
2. Mapper动态代理规范
- 接口名称需要与映射文件名称相同
- 映射配置文件中namespace必须是接口的全名
- 接口中的方法名和映射配置文件中的标签的id一致
- 接口中的返回值类型和映射配置文件中的resultType的指定类型一致
3. 顺序传参法
在映射文件中,SQL语句中的参数需要使用arg0,arg1…或者param1,param2…表示参数的顺序。此方法可读性低,且要求参数的顺序不能出错,在开发中不建议使用
4.@Param注解传参法

5. POJO传参法

6. Map传参法
Mapper中的参数必须与map中的key保持一致!