mybatis12月7号课堂笔记

2026/1/27 11:48:52

10.3 传递hashmap

parameterType指定hashmap传递输入参数,#{}和${}中引用map的key。

Sql映射文件定义如下:

select * from user where id=#{id} and username like '%${username}%'

10.4 小结:

如果使用动态代理方式,mapper接口的输入参数只有一个,是否有局限性?

Mapper就是dao,dao不是service,dao中没有业务逻辑,编写的dao具有公用的特性,被service公用。 即使mapper接口方法输入参数只有一个,建议使用包装对象(注意不要使用map),使用组合方式将pojo包装进来。

对于parameterMap已经过期不建议使用。

11 resultType

11.1 返回pojo

resultType:将sql查询结果集映射为java对象。要求sql查询的字段名和resultType指定pojo的属性名一致,才能映射成功。

如果全部字段和pojo的属性名不一致,映射生成的java对象为空,只要有一个字段和pojo属性名一致,映射生成的java对象不为空。

结论:sql查询字段名和pojo的属性名一致才能映射成功。

不管select返回的是单个对象还是集合对象,resultType要指定单条记录映射的java对象。

11.2 返回简单类型

如果sql查询的结果集只有一行且一列,resultType可以返回简单类型。

11.3 返回hashmap

输出pojo对象可以改用hashmap输出类型,将输出的字段名称作为map的key,value为字段值。 ? Mapper.xml

selectid,username username_ from user where username = #{user.username} and sex=#{user.sex}

? Mapper.java

Public Map findUserListReturnMap(QueryVoqueryVo);

建议不使用map作为返回值,因为需要对key在代码中硬编码。

11.4 小结

1、 如果返回pojo,要求sql查询字段名和pojo的属性名一致。

2、 不管select返回的是单个对象还是集合对象,resultType指定相同的映射类型(单条记录映射的java对象

类型。)

企业中常用resultType,针对sql查询结果定义pojo即可。

12 动态sql

Mybatis提供了很多标签,用于拼接sql语句。

12.1 if

判断,如果条件满足,进行sql拼接。

12.2 sql片段

sql片段:可以将一些sql定义成一个片段,可以被其它statement引用。

Sql片段定义:

开发经验:

建议以单表抽取sql,sql片段的可重用性才高。

Sql片段使用:

12.3 foreach

需求:传入多个id查询用户

Sql语句: 两个方法:

SELECT * FROM USER WHERE username LIKE '%张%' AND (id =10 OR id =89 OR id=16)

SELECT * FROM USER WHERE username LIKE '%张%' id IN (10,89,16)


mybatis12月7号课堂笔记.doc 将本文的Word文档下载到电脑
搜索更多关于: mybatis12月7号课堂笔记 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219