简单类型输出映射
返回简单基本类型
<select id="findAdminInfoCount" resultType="int">
select count(*) from admin
</select>
对象映射
如果表中的类名与类中的属性名完全相同,mybatis会自动将查询结果封装
到POJO对象中.
如果java中使用标准驼峰命名,数据库中使用下划线连接命名,可以开始全局
设置实现自动转换
<setting name="mapUnderscoreToCamelCase" value="true"/><select id="findUserInfoById"
parameterType="int"resultType="Admin">
select * from admin where id=#{id}
</select>
#{} 和${}区别
#{} 占位符,是经过预编译的,编译好 SQL 语句再取值,#方式能够防止 sql 注入
#{}:delete from admin where id=#{id}
结果: delete from admin where id = ?
${}会将将值以字符串形式拼接到 sql 语句, ${ }方式无法防止 Sql 注入
${}: delete from admin where id=’${id}’
结果: delete from admin where id=’1’
一般是#{ } 向 sql 传值使用, 而使用${ }向 sql 传列名
例如在 order by $ {column} 语句后面可以动态替换列名
特殊处理定义 resultMap
定义 resutlMap
<resultMap id="adminResultMap" type="Admin">
<id column="id" property="id"/>
<result property="account" column="account" />
<result property="password" column="password" />
</resultMap>
(1). resutlMap 的 id 属性是 resutlMap 的唯一标识,本例中定义为
“
adminResultMap”
(2). resutlMap 的 type 属性是映射的 POJO 类型
(3). id 标签映射主键,result 标签映射非主键
(4). property 设置对象属性名称,column 映射查询结果的列名称
使用 resutlMap
使用 resultMap
<select id="findAdminInfoResultMap"
resultMap
="adminResultMap">
SELECT id ,account,password FROM admin
</select>
(1). 本例的输出映射使用的是 resultMap,而非 resultType
(2). resultMap 引用了 adminResultMap