Mybatis-浅析

一接触ORM,就开始上手全ORM映射的框架,hibernateSpring Data API,这次接手的项目,使用的是mybatis.

orm的时候,我是这样获取外键实体的属性的StudentA.Teacher.nameSo Easy

 

但是从查询效率方面考虑的话,全Orm的效率是远远低于原生sql的。半ORM,位于中间。

 

使用mybatis,最麻烦的就是配置文件的书写太繁琐,也太复杂,好在mybatis-generater,提供了自动生成工具。生成的xml文件中都是些基本的查询,复杂的查询例如一对一,多对一,一对多的查询,一概没有。这些简单的查询,需要我们稍微加工,才能为我们所用。

先来简单看一下

 

大家一定注意到了,ByPrimaryByExample.还有Selective了,第一个根据主键查询都好理解,第二个就体现了mybatis充分为程序员考虑了,因为对数据库的操作,不仅仅只把id作为检索体检的,检索条件会各种各样,所以mybatis还为大家封装了critera类,这个类的用法,会在下一篇的博客中进行讲解。

我们先来看一个一对一的查询,大家可能注意到了,xml文件中有一个节点是resultMap,其中是数据库字段和实体属性对应的集合。resultMap整体又是一个或多个查询,从数据库检索的字段的集合,这些字段组成一个实体。

我们来看一个一对一的查询,是如何查询出来并对应上实体的

 

<selectid="selectByPrimaryKey"resultMap="ResultMapWithBLOBs"parameterType="java.lang.String">

select

tc.id,tc.interview_id,tc.comments_pid,tc.user_id,tc.work_id,tc.show_id,tc.state,tc.replyNum,

tc.visitNum,tc.clicklikeNum,tc.isFamous

<!--<includerefid="Base_Column_List"/>-->

,

<includerefid="Blob_Column_List"/>

<!--,-->

,

tu.nameuser_name,tu.nicknameuser_nickname,tu.homepage_urluser_homepage_url,tu.photo_urluser_photo_url

,

tw.title

,

twi.path

,

twu.idwu_id,twu.namewu_name,twu.nicknamewu_nickname,twu.homepage_urlwu_homepage_url,twu.photo_url

wu_photo_url

fromt_commentstc,t_usertu,t_workstw,t_works_imagetwi,t_usertwu

wheretc.id=#{id,jdbcType=VARCHAR}andtw.id=tc.work_idandtu.id=tc.user_idandtw.works_image_id=twi.id

</select>

 

上述的查询语句中,可以看出,查出的所有字段的名称,都不可以相同,如果相同的话,会出现赋值错误。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值