MyBatis SQL映射文件
Posted lxowz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis SQL映射文件相关的知识,希望对你有一定的参考价值。
SQL映射文件的几个顶级元素:
mapper : 映射文件的根元素节点 只有一个属性namespace(命名空间)
作用:用于区分不同的mapper ,全局唯一
绑定DAO接口,即面向接口编程 ,namespace的命名必须要跟接口同名。
cache: 配置给定命名空间的缓存
cache-ref: 从其他命名空间引用缓存配置
resultMap: 用来描述数据库结果集和对象的对应关系。
sql : 可以重用的SQL块,也可以被其他语句引用。
insert: 映射插入语句。
update : 映射更新语句
delete: 映射删除语句
select: 映射查询语句
namespace的命名必须跟某个DAO接口同名,同属于DAO层 包下,习惯命名以 实体类+Mapper.xml命名。
接口中的方法名与映射文件中的SQL语句id应一一对应
使用select完成 单条件模糊查询
<select id="getUserListByUserName" resultType="User" parameterType="string">
select * from smbms_user where userName like CONCAT (‘%‘,#{userName},‘%‘)
<select>
id为 getUserListByUserName 的映射语句,参数类型为 string 返回结果类型是User; 数据库的字段名和属性名不一致的情况下需要手动映射
id: 命名空间中唯一的标识符,可以被用来引用这条语句。
parameterType: 表示查询语句传入参数的类型的完全限定名或别名。
MyBatis多参数入参有三种方式:
1.将查询条件封装成对象进行入参 parameterType="User 类对象"
2. 使用Map集合 存储查询条件 parameterType="Map" 返回集合
3. 使用@Param注解实现多参数入参
使用resultMap完成查询结果的展现
resultType 直接表示返回类型,包括基础数据类型和复杂数据类型。
resultMap 是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果映射到哪一个resultMap上,应用场景一般是:数据库字段信息与对象属性不一致或者需要做复杂的联合查询以便自由控制映射结果。
以上是关于MyBatis SQL映射文件的主要内容,如果未能解决你的问题,请参考以下文章