MyBatis的配置文件(常用配置)

it2022-05-07  7

文章目录

MyBatis的配置文件结构(MyBatis-config.xml)(1)properties属性(2)settings设置(3)typeAliases类型别名(4)typeHandlers类型处理器(5)environments配置环境

MyBatis的配置文件结构(MyBatis-config.xml)

MyBatis的配置文件包含了影响MyBatis行为的信息。文档的结构如下: 顶层configuration配置

properties 属性settings 设置typeAliases 类型命名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境 environment 环境变量transactionManager 事务管理器dataSource 数据源 databaseIdProvider 数据库厂商标示mappers 映射器

(1)properties属性

        properties中配置的属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过properties元素的子元素来传递。如外部增加一个db.properties文件,在MyBatis的配置文件中配置<properties…/>元素引入即可。

(2)settings设置

        settings设置是MyBatis中极为重要的调整设置,它们会改变MyBatis的运行时行为。常用的可配置项如下:

设置参数描述有效值默认值cacheEnabled影响所有映射器中配置的缓存的全局开关true /falsetruelazyLoadingEnabled延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。特定的关联关系中可通过fetchType属性来覆盖该项的开关状态true /falsefalseuseGeneratedKeys允许JDBC支持自动生成主键,需要驱动兼容true /falsefalse其他…(待更新)

(3)typeAliases类型别名

        类型别名是为Java类型设置一个短的名字。它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余。

<typeAliases> <typeAlias alias="User" type="com.xingze.pojo.User"> </typeAliases>

当这样配置时,User对象可以用在任何使用com.xingze.pojo.User的地方

(4)typeHandlers类型处理器

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

类型处理器Java类型JDBC类型BooleanTypeHandlerjava.lang.Boolean,boolean数据库兼容的BOOLEANByteTypeHandlerjava.lang.Byte,byte数据库兼容的NUMERIC或BYTEShortTypeHandlerjava.lang.Short,short数据库兼容的NUMERIC或SHORT INTEGERIntegerTypeHandlerjava.lang.Integer,int数据库兼容的NUMERIC或INTEGERLongTypeHandlerjava.lang.Long,long数据库兼容的NUMERIC或LONG INTEGERDouble…Float…Date…其他…

(5)environments配置环境

        MyBatis的环境配置实际就是数据源的配置,MyBatis可以配置多种环境,这种机制使得MyBatis可以将SQL映射应用于多种数据库中。 环境示例配置如下:

<environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}" <property name="url" value="${url}" <property name="username" value="${username}" <property name="password" value="${password}" </dataSource> </environment> </environments>

<transactionManager…/>事务管理器配置

   <transactionManager…/>表示事务管理器配置,在MyBatis中有JDBC和MANAGED两种类型的事务管理器:

JDBC:直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围MANAGED:这个配置几乎没做什么,它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期。默认情况下会关闭连接。

注:如果使用Spring + MyBatis开发,则没有必要配置事务管理器,因为Spring模块会使用自带的管理器来覆盖MyBatis的事务管理器配置。

<dataSource…/>数据源配置

   <dataSource…/>表示数据源配置,有以下三种:

UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。它对性能没有要求的简单应用程序是一个很好的选择。需要配置以下五种属性: driver:JDBC驱动的Java类的完全限定名url :数据库的JDBC URL地址username:登陆数据库的用户名password:登陆数据库的密码defaultTransactionIsolationLevel:默认的数据库事务隔离级别 POOLED:这个数据源的实现利用“池”的概念将JDBC连接对象组织起来,避免了创建新的连接实例化时所需的初始化和认证时间。这是一种使得并发Web应用快速响应请求的流行处理方式。需要配置的属性如下: UNPOOLED中的五个属性poolMaximumActiveConnections:在任何时间可以存在的正在使用的连接数量,默认值是10poolMaximumConnections:任意时间可能存在的空闲连接数poolMaximumCheckoutTime:在被强制返回前,池中连接被检出(check out)时间,默认值时20000ms(20s)poolTimeToWait:poolPingQuerypoolPingEnabledpoolPingConnectionsNotUsedFor JNDI 这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放一个JNDI上下文的引用。需要配置的属性如下: initial_contextdata_source

(6)mapper映射器

      MyBatis需要开发者自己写SQL语句,mapper映射器告诉MyBatis去哪找映射文件,进而找到这些SQL语句。在实际开发中可以使用相对于类路径的资源引用、完全限定资源定位符(包括file:///的URL)、类名、包名等。代码如下:

<mappers> <!-- 使用类路径查找资源文件--> <mapper resource="com/xingze/mapper/UserMapper.xml"/> <!-- 使用本地文件--> <mapper url="file:///C:/mapper/UserMapper.xml"/> <!-- 使用接口类--> <mapper class="com.xingze.mapper.UserMapper"/> <!-- 使用包名--> <package name="com.xingze.mapper"/> </mappers>

最新回复(0)