标签:语句 映射 作用域 resultMap sqlSession Mybatis id
1.生命周期,和作用域,是至关重要的,因为错误的使用会导致严重的并发问题
并发问题流程图
注意:每一个sqlSession对应一个业务
在用sqlSession去写增删改相关的业务时用提交事务(sqlSession.commit();)
在每个持久层操作完毕后要将sqlSession关闭(sqlSession.close())
2.resultMap(结果集映射)
2.1,为什么模拟场景:更好的了解resultMap(结果集映射),
2.1,模拟场景:当数据库字段名和对应实体类属性不一致时:
解决方式一,利用sql语句给字段起别名(让别名跟对应的实体类属性相同)
<select id="getUserById" parameterType="int" resultType="user"> select id,name,pwd as password from mybatis.user where id = #{id} </select>
方式二,结果集映射
<!--结果集映射--> <resultMap id="userMap" type="user"> <!--column对应数据库的字段,property对应实体类的属性--> <result column="id" property="id"/> <result column="name" property="name"/> <result column="pwd" property="password"/> </resultMap> <select id="getUserById" parameterType="int" resultMap="userMap"> select * from mybatis.user where id = #{id} </select>
注意:当使用结果集映射时,sql操作标签中的resultType(返回参数类型)要改成resultMap
官方文档的解释:
resultMap
元素是 MyBatis 中最重要最强大的元素- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
- ResultMap最优秀在于,虽然你已经相当了解她了,,但是根本就不需要显示的用到他们
标签:语句,映射,作用域,resultMap,sqlSession,Mybatis,id 来源: https://www.cnblogs.com/CL-King/p/13871057.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。