news 2026/1/22 4:49:42

Mybatis之作用域(Scope)和生命周期-解决属性名和字段名不一致的问题ResultMap结果集映射

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mybatis之作用域(Scope)和生命周期-解决属性名和字段名不一致的问题ResultMap结果集映射

生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题

SqlSessionFactoryBuilder

  • 一旦创建了 SqlSessionFactory,就不再需要它了。
  • 局部变量

SqlSessionFactory

  • 说白了就是可以想象为:数据库连接池
  • 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例
  • 因此SqlSessionFactory 的最佳作用域是应用作用域。
  • 最简单的就是使用单例模式或者静态单例模式。

SqlSession

  • 连接到池的一个请求!
  • SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。
  • 用完之后感觉关闭,否则资源被占用!

一个池子有多个线程,每一个线程都是独享的,不能够共享。每一个SqlSession 都会去连接Mapper,这里面的每一个Mapper,就代表一个具体的业务!(SQL)

参考:

https://mybatis.org/mybatis-3/zh_CN/getting-started.html

问题

数据库中的字段

新建一个项目,拷贝之前的,测试实体类字段不一致的!

publicclassuser{privateintid;privateStringname;privateStringpassword;

测试出现问题

select*from mybatis.user where id=#{id};//类型处理器select id,name,pwd from mybatis.user where id=#{id};

解决方法:

  • 起别名

UserMapper.xml 中

<selectid="getUserById"parameterType="int"resultType="user">select id,name,pwd as password from mybatis.user where id=#{id};</select>

resultMap

结果集映射

id name pwd id name password

UserMapper.xml 中

<!-- 结果集映射 id是属性,用来给应用的,type指定类名--><resultMapid="UserMap"type="user"><!--列column指的是数据库中的字段,属性property指的是实体类中的属性--><resultcolumn="id"property="id"/><resultcolumn="name"property="name"/><!--数据库中的列是pwd,实体类中的属性是password,进行结果集映射--><resultcolumn="pwd"property="password"/></resultMap><!--<select id="对应UserMapper的方法" resultType="实体类">--><selectid="getUserById"resultMap="UserMap">select * from mybatis.user where id=#{id};</select>

  • <font style="color:rgb(221, 17, 68);background-color:rgb(247, 247, 249);">resultMap</font>元素是 MyBatis 中最重要最强大的元素
  • ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
  • <font style="color:rgb(221, 17, 68);background-color:rgb(247, 247, 249);">ResultMap</font>的优秀之处——你完全可以不用显式地配置它们
  • 如果这个世界总是这么简单就好了。

参考:

官方文档:https://mybatis.org/mybatis-3/zh_CN/sqlmap-xml.html
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/25 21:04:31

基于大数据对B站热门视频的数据分析与数据研究系统(程序+文档+讲解)

课题介绍在 B 站内容生态精细化运营、创作者赋能需求下&#xff0c;传统热门视频分析存在 “维度单一、实时性差、规律挖掘不足” 的痛点&#xff0c;基于大数据技术构建的 B 站热门视频数据分析与研究系统&#xff0c;适配平台运营人员、UP 主、数据分析师等角色&#xff0c;整…

作者头像 李华
网站建设 2026/1/11 12:06:58

学长亲荐10个AI论文软件,助你轻松搞定本科毕业论文!

学长亲荐10个AI论文软件&#xff0c;助你轻松搞定本科毕业论文&#xff01; 论文写作的“隐形助手”&#xff0c;你真的了解吗&#xff1f; 在当今这个信息爆炸的时代&#xff0c;AI 工具已经成为许多本科生撰写毕业论文时不可或缺的帮手。无论是内容创作、逻辑梳理&#xff0c…

作者头像 李华
网站建设 2026/1/1 18:48:48

佳明自动驾驶系统成功实现小型飞机无人干预自动着陆

美国联邦航空管理局证实&#xff0c;佳明公司的自动着陆产品在首次实际紧急情况应用中取得成功&#xff0c;一架小型飞机在科罗拉多州落基山都市机场完全依靠自动化系统安全紧急降落。佳明紧急自动着陆系统的设计目标是在"飞行员无法驾驶的紧急情况下自动接管飞行的完全控…

作者头像 李华
网站建设 2026/1/13 13:16:07

运营述职 PPT 工具横评:效率与呈现谁更优

每到季度末&#xff0c;做运营述职 PPT 就成了运营人的噩梦。好不容易搞定了基础的数据整理&#xff0c;又要担心写不出吸引人的内容&#xff0c;熬夜熬到两眼发黑&#xff0c;内容框架还是一团乱麻。好不容易把内容凑齐了&#xff0c;又得在排版设计上绞尽脑汁&#xff0c;颜色…

作者头像 李华
网站建设 2025/12/25 20:56:03

基于微信小程序的新冠疫情防控信息管理系统毕设源码+文档+讲解视频

前言 本课题聚焦新冠疫情防控场景下信息管理的高效化需求&#xff0c;针对传统防控信息收集滞后、数据分散、交互不便等痛点&#xff0c;设计开发基于微信小程序的新冠疫情防控信息管理系统。系统以微信小程序为前端载体&#xff0c;结合Node.jsExpress后端框架与MongoDB数据库…

作者头像 李华
网站建设 2026/1/12 1:04:56

使用OpenGL绘制卡通效果的圣诞树

使用OpenGL绘制卡通效果的圣诞树引言1. 加载3D圣诞树模型1.1 模型准备1.2 使用Assimp库加载模型2. 使用OpenGL绘制圣诞树2.1 初始化OpenGL2.2 设置着色器3. 添加卡通效果3.1 卡通着色原理3.2 实现卡通着色3.3 添加轮廓线4. 增强圣诞气氛4.1 装饰品4.2 闪烁灯光4.3 雪花粒子系统…

作者头像 李华