一、mapper代理开发的规范要求:
- 映射文件XXXmapper.xml的名字要和接口的名字一致
- 映射文件的namespace要和接口的全路径一致
- 映射文件的statement的id要和接口的方法名一致
- 映射文件的输入参数类型parameterType和接口的参数类型一致
- 映射文件的输出结果类型和接口的返回类型一致


二、mapper.xml详解
- parameterType:输入参数类型(java基本类型、pojo、HashMap)
- hashMap:通过#{map的key}设置值 如果没有这个key,不会报错,那么取值是null
- 多参数时:多参数时无需指定参数类型
- 取值方法一:使用#{index}来取值,从0开始
- 取值方法二:接口参数使用@Param("key")注解,然后通过#{key}的方式取值(原理就是把当前的参数封装到一个map中)
- resultType:输出结果类型(java基本类型、pojo、HashMap)
- 如果pojo属性名和数据库字段名不匹配
- 解决方法一:给SQL查询的结果起别名 select carId as carId,name as carName,userId as userId from car
- 解决方法二:使用resultMap配置一对一或一对多

- 一对一:如果字段名和属性名一致,可以省略一致的属性
- 一对多:如果字段名和属性名一致,不可以省略
- 如果pojo属性名和数据库字段名不匹配

三、动态sql
- <if>条件判断
- <where>会去除多余的and、or
- <set>会去除多余的 ”,”
- <foreach>用于数组和集合的循环遍历
- collection:传递来的参数,可以是list,array(数组),还可以是map的key,可以是pojp中的属性
- item:循环中的单个元素
- index:当前元素的下标
- open:循环的开始
- close:循环的结束
- separator:分隔符
Mybatis Mapper.xml 深入解析
本文详细介绍了Mybatis的Mapper代理开发规范,包括映射文件命名、namespace、statement id、参数类型和返回类型的一致性要求。接着深入解析了mapper.xml,讲解了parameterType、resultType的使用细节,以及如何处理属性名与字段名不匹配的问题。此外,还探讨了动态SQL的运用,如<if>、<where>、<set>和<foreach>标签的用法。
173

被折叠的 条评论
为什么被折叠?



