JAVA语言之Mybatis学习日志
小标 2018-07-24 来源 : 阅读 1113 评论 0

摘要:本文主要向大家介绍了JAVA语言之Mybatis学习日志,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之Mybatis学习日志,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

在Mybatis深入学习的一周中,总感觉跟着师傅的视屏讲解什么都能懂,但实际自己操作的时候才发现自己一脸懵逼,不知道从何入手。但还好自己做了点笔记。在此记录一下自己浅度学习Mybatis遇到几个小问题。

1.个人感觉学习Mybatis过程中最好使用log4j 日志文件,这样在你自己测试代码的时候,能更好的看到Mybatis的运行过程。不使用的话,测试代码的时候如果代码正确他就只会输入结果,有时候这个结果你是知道的,相比较之下使用log4j你能看到一些过程,这样在学习中能更好的理解。

 

作为技术小白的我,也就只会用用log4j。首先是导入jar包,log4j 和slf4j的版本一定要对应,否则会报异常。其次是log4j的配置文件,代码如上,必须放置src目录下,然后就可以使用了。

 

这两个包是必须的,一个是mybatis的jar包,一个是连输mysql数据用的jar包

2.就是在配置Constructor 构造器的时候,大家在对应类的构造方式的后尽量使用Interger类似的对象数据类型,因为我在写构造器的时候用int类型返回数据库的id列他会报异常。原因是数据不匹配,至于具体的问题,师傅说是源于java反射机制,这里就不多说了。

 

3.Mapper映射代理对象,一般来说Mybatis核心配置文件中引入Mapper映射文件有三种方式:1:resource引入映射文件位置 2.class 引入代理对象类3.package引入代理对象所在的包(批量代理)

 

这里必须注意的是,class 和 package 引入代理对象时,必须把映射文件和接口类放在同一文件下,同时mapper映射文件中的语句id 必须对应接口的方法名称。否则代理对象不成功。

 

然后通过session对象调用getMapper就可以实现对象代理了。

4.一对多和多对多关系理解。  我在学习这一章节的时候,起初是通过sql语句和sql表来理解和思考处理这些关系。其实不然,处理多对多关系的时候,首先先分析类与类的关系或者说表与表的关系 这是必须的,其次在表对应的类中建立连接

 

这里P_oder对应Oder是一对一的关系,Product和P_oder是一对多的关系,这里分析好了,mapper里的语句处理就好解决了

 

这里是P_oder的mapper里实现三表联查,首先找到一对一联查  ,也就是从数据库找到数据返回给P_oder对象类里的Oder对象,ResultMap里首先放的是P_oder的基本类型,其次Association就是处理P_oder和Oder的关系,比如这里是根据p_oder里的p_id 对应Oder里的id,一对多的关系处理也是一样的原理,只不过 collection 里返回的就是一个集合了,这里也对应了一对多的关系。

 

5.在配置Mybatis核心配置的Settings 配置时,要导入两个jar包。

 

初学Mybatis的我在这里就掉坑里了,这里cglib的版本据我搜到的资料,应该是要小于asm版本的,我试过相同版本,调试报异常。这里和log4j 和slf4j不一样,log4j 和slf4j是需要相同版本。

6.Mybatis 二级缓存。 这里最绕的就是:当你启用二缓存,又有insert/update/delect数据处理,又关闭了insert/update/delect 刷新缓存时 。

如果你的数据处理语句在session.close() (向二级缓存刷入数据)的后面,那么二级缓存中是没有数据的。虽然我们关闭了二级缓存的数据刷新,也就是当执行数据处理语句时,二级缓存不会被清除,但是这里会清除一级缓存中的数据,所以把session.close() 一级缓存刷入二级缓存放在数据处理语句前 就可以实现二级缓存中有数据,且不被清除。

以上就是职坐标整理发布关于JAVA的介绍,先祝大家对它有了一定的了解吧,了解更多内容,请关注职坐标编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程