Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning 】,可直接运行,就不占篇幅了。
1.使用工具类获取sqlSession实例对象
在上一个demo中,处理了多个namespace的问题,那么我们可以看到代码还是会有一定的冗余,比如下面这段代码中我们每一个增删改查操作都需要读取一遍配置文件:
我们的思路应该是写一个工具类来替我们获取配置文件的信息,只要返回一个sqlSession实例就可以了。所以就有了MyBatisUtils.class,下面这样的方式,只要使用sqlSession=MyBatisUtils.getSqlSession();
就可以获取到sqlsession的实例。
但是以上的方式并不是最好的,还是会浪费资源,如果sqlsession已经存在了,这段代码还是会去创建一个新的实例对象。我们知道sqlsession没有可修改的属性,是线程安全的,所以我们需要把它改写成单例模式。
使用的时候只需要获取即可
2.DB配置改造成读取配置文件
现在我们需要将DB使用配置文件读取,不是用xml配置,很多人会问,为什么这样做,有人可能会回答是因为改动的时候容易改,但是xml改动的时候不是挺容易改么?
其实,写到属性文件的原因与上面的一样,就是为了更好改,要是上线了需要该数据库我们只需要改动<properties resource="jdbc_mysql.properties">
这一个地方就可以了,xml文件就变得更加简洁清晰了。
原来在mybatis.xml文件里配置的是:
现在我们定义一个jdbc-mysql.properties文件,将数据库连接的属性直接写进属性文件里(我们可以有好几个不一样的.properties文件,配置着不同的数据库):
将mybatis.xml改造成(注意下面需要配置属性文件,然后才能在environment标签里面使用,直接使用key就可以了,属性文件配置是按照key-value的模式配置的):
【作者简介】:
秦怀,公众号【秦怀杂货店】作者,技术之路不在一时,山高水长,纵使缓慢,驰而不息。这个世界希望一切都很快,更快,但是我希望自己能走好每一步,写好每一篇文章,期待和你们一起交流。
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者核实删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~
__EOF__

本文链接:https://www.cnblogs.com/Damaer/p/14052619.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库