上篇我们梳理来mybatis配置文件整体结构,和部分配置项的介绍,下面我们继续梳理mybatis中的<environments>和<mappers>
5、environments(环境配置)
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中 使用相同的 SQL 映射(摘自官网)
配置方式如下:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://www.xxxx.com:3306/luxydb"/>
<property name="username" value="luxy"/>
<property name="password" value="******"/>
</dataSource>
</environment>
<environment id="product">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://www.xxxx.com:3306/luxydb2"/>
<property name="username" value="luxy"/>
<property name="password" value="******"/>
</dataSource>
</environment>
</environments>
注:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。即使用不同的环境,需要创建不同的SqlSessionFactory,但每个环境创建各自创建一个SqlSessionFactory。
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);
如果没有传入environment,则获取<environments default="development">中配置的default。
6、mappers(映射器)
对于映射器mybatis共提供了类路径的资源引用、完全限定资源定位符(包括 file:/// 的 URL)、类名、包名4种配置方式
6.1 使用相对于类路径的资源引用
<mappers>
<mapper resource="com/mybatis/mine/userMapper.xml"/>
</mappers>
6.2 使用完全限定资源定位符(URL)
<mappers>
<mapper url="file://D:/var/mappers/AuthorMapper.xml"/>
</mappers>
6.3 使用映射器接口实现类的完全限定类名
<mappers>
<mapper class="com.mybatis.mine.UserMapper"/>
</mappers>
6.4 将包内的映射器接口实现全部注册为映射器
<mappers>
<package name="com.mybatis.mine"/>
</mappers>
结语:结合前一篇我们简单梳理了一下mybatis的配置文件,只有详细了解了,使用起来才可以迎刃有余。个人感觉理解的还比较粗浅,想深入学习的话,还是建议去参考一下官网的帮助文档,毕竟那里才是最新的,也是最权威的