专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
芋道源码  ·  为什么王者荣耀不使用微服务架构? ·  昨天  
芋道源码  ·  Web 实时消息推送的 7 种实现方案 ·  2 天前  
芋道源码  ·  今年这情况。。大家多一手准备吧 ·  2 天前  
芋道源码  ·  后端行情变了,差别真的挺大。。。 ·  3 天前  
Java编程精选  ·  某华为od吐槽:我双非在华为OD觉得委屈想走 ... ·  3 天前  
51好读  ›  专栏  ›  ImportNew

MyBatis(2):config.xml文件

ImportNew  · 公众号  · Java  · 2016-12-21 20:02

正文

(点击 上方公众号 ,可快速关注)


来源:五月的仓颉

链接:www.cnblogs.com/xrq730/p/5256221.html


前言


前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句。前者我把它命名为config.xml,config.xml的内容是:


/span>

"http://mybatis.org/dtd/mybatis-3-config.dtd">


这是一个最基本的配置写法,一般使用MyBatis都可以在这个配置文件的基础上进行修改加以扩展,本文就学习一下config.xml文件 里面的一些内容。


typeAliases


这个标签倒不关键,但是有这个标签之后整体使用MyBatis就会很方便。typeAliases是为Java类型命名一个短的名字,它只和XML配置有关,用来减少类完全限定名的多于部分,例如:



有了这个配置,”Blog”可以任意用来代替”domain.blog.Blog”所使用的地方。


environments


MyBatis可以配置多种环境,这会帮助你将SQL映射应用于多种数据库之中。例如,你也许为开发要设置不同的配置,测试和生产环境。或者你可能有多重生产级数据库却共享相同的模式,所以你会想到对不同数据库使用相同的SQL映射。这种用法是最多的。


有一个很重要的问题是:你可以配置多种环境,但你只能为每个SqlSessionFactory实例选择一个。


所以,如果你想连接两个数据库,那么就需要创建两个SqlSessionFactory实例,每个数据库对应一个。而如果是三个数据库,你就需要三个实例,以此类推。我们把前面的environments拿出来看:



而对应的Java代码是:


reader = Resources.getResourceAsReader("config.xml");

ssf = new SqlSessionFactoryBuilder().build(reader);


SqlSessionFactoryBuilder的build方法实际上还有几个别的重载方法,其中一个重要的是:


public SqlSessionFactory build(Reader reader, String environment) {

return build(reader, environment, null);

}


原则是:如果传入environment,指定的envrionment被绑定到SqlSessionFactory;如果不传入environment,default指定的environment被绑定到SqlSessionFactory。


接着来看一下环境元素:


1、transactionManager


在MyBatis中有两种事物管理器类型,一种是JDBC,一种是MANAGED。


  • JDBC—-这个配置直接简单使用了JDBC的提交和回滚设置,它依赖于数据源得到的连接来管理事物范围


  • MANAGED—-这个配置几乎不做什么。它从来不提交或回滚一个连接,而它会让容器来管理事物的整个生命周期(比如Spring或J2EE应用服务器的上下文),默认情况下它会关闭连接,然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false,例如:







请到「今天看啥」查看全文