(点击
上方公众号
,可快速关注)
来源:五月的仓颉
链接: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。