第一范文网 - 专业文章范例文档资料分享平台

mybatis12月7号课堂笔记

来源:用户分享 时间:2025/7/23 5:59:00 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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号课堂笔记 的文档
mybatis12月7号课堂笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7rxd11aayt7yogk1iu0t_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top