mybatis学习笔记之——mybatis的XML配置文件(全局配置文件)

MyBatis的配置文件包含了会深深影响MyBatis行为的设置(settings)和属性(properties)信息。我们详细了解一下MyBatis的各种标签的作用以及使用方法。

properties

properties:配置,mybatis可以使用properties标签来引入外部properties配置文件的内容。

<properties resource="引入类路径下的资源" url="引入网络路径或者磁盘路径下的资源">
</properties>

settings

settings:设置,包含了很多重要的设置项。

setting:用来设置每一个设置项。

<settings>
    <setting name="设置项名" value="设置项取值true/false"/>
</settings>

 设置项有很多,可以参考官方文档,每个设置项都有一个默认取值。

typeAliases

typeAliases:类型别名。可以为我们的Java类型取别名,别名不区分大小写。

typeAlias:为某个类型取别名。

package:批量取别名。

<typeAliases>
    <typeAlias type="指定要取别名的类型全名。默认名是类名的小写。" alias="指定新的别名"></typeAlias>

    <package name="指定包名(为当前包以及下面所有的后代包都取一个默认别名)"></package>
</typeAliases>

我们在批量取别名的情况下,如果存在包下和后代包下相同的类名相同的情况,也可以使用@Alias("别名")注解为某个类型指定新的别名。

这里还需要注意的是,基本类型的别名是前面加下划线_,包装类型的别名是小写。这是mybatis已经配置好的别名。我们在取别名的时候不要将别名设置成这些。

typeHandlers

typeHandlers:类型处理,无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。

扫描二维码关注公众号,回复: 3634949 查看本文章

objectFactory

objectFactory:对象工厂。MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。

plugins

plugins:插件。

environments

environments:配置环境,mybatis可以配置多种环境,default指定使用某种环境,可以达到快速切换。

environment:配置一个具体的环境信息,(必须有transactionManager和dataSource两个标签)。

<environments default="development">
    <environment id="设置环境名字">
        <!-- transactionManager:事务管理器 -->
        <transactionManager type="事务管理器的类型:JDBC/MANAGED"></transactionManager>
        <!-- dataSource:数据源 -->
        <dataSource type="UNPOOLED/POOLED/JNDI"></dataSource>
    </environment>
    
    <!-- 这里为连接SQL server数据库的例子,username为用户名,password为密码 -->
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
            <property name="url" value="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mybatis"/>
            <property name="username" value="sa"/>
            <property name="password" value="sa123456"/>
        </dataSource>
    </environment>
</environments>

这里的事务管理器类型:

JDBC:这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。

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

我们也可以自定义事务管理器,需要实现TransactionFactory接口,type可以写这个实现类的全类名。

这里的数据源:

UNPOOLED:UnpooledDataSourceFactory不使用连接池;

POOLED:PooledDataSourceFactory使用连接池,默认使用;

JNDI:JndiDataSourceFactory 使用JNDI;

自定义数据源:实现DataSourceFactory,type是全类名。

databaseIdProvider

databaseIdProvider:数据库厂商标识。用于配置多数据库的支持。

type:DB_VENDOR,DB_VENDOR是别名,VendorDatabaseIdProvider、作用就是得到数据库厂商标识(驱动getDatabaseProductName()), mybatis就能根据数据库厂商标识来执行不同的sql。 一些默认的数据库厂商标识:MySql,Oracle,SQL Server。

select标签里面有一个databaseId属性,将databaseId属性的值设置为数据库厂商名,即可设置连接的数据库。

<databaseIdProvider type="DB_VENDOR">
    <!-- 为不同数据库厂商取别名 -->
    <property name="MySql" value="mysql"></property>
    <property name="Oracle" value="oracle"></property>
    <property name="SQL Server" value="sqlserver"></property>
</databaseIdProvider>

mappers

mappers:映射器。将sql映射注册到全局配置中。

mapper:注册一个sql映射。

<mappers>
    <mapper url="引入网络环境或者磁盘路径下的sql映射文件"></mapper>
    <mapper resource="引入类路径下的sql映射文件"/>
</mappers>

以上为MyBatis的映射配置文件的内容,在我们实际编写配置文件的时候,这些标签是有顺序的。

详情见mybatis的官网 http://www.mybatis.org/mybatis-3/zh/index.html 。

猜你喜欢

转载自blog.csdn.net/wangruoao/article/details/83095413
今日推荐