MyBatis系统学习 - 核心配置文件详解

核心配置文件详解

上篇博客我们利用MyBatis实现了一个直接添加数据到数据库的操作,期间我们创建了mybatis.xml配置文件,这篇我们就围绕Mybatis配置文件进行讲解。

MyBatis的固定标签配置顺序

  1. properties:用于定义属性配置,可以在配置文件中引用这些属性。属性可以通过外部文件加载或直接在配置文件中定义。示例代码如下
<properties resource="jdbc.properties">
	  <property name="driver" value="${jdbc.driver}"/>
	  <!--设置连接数据库的连接地址-->
	  <property name="url" value="${jdbc.url}"/>
	  <!--设置连接数据库的用户名-->
	  <property name="username" value="${jdbc.username}"/>
	  <!--设置连接数据库的密码-->
	  <property name="password" value="${jdbc.password}"/>
</properties>

jdbc.properties

jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=123456
  1. settings:用于配置MyBatis的全局设置,包括缓存、懒加载、日志等。示例代码如下:
<settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="logImpl" value="LOG4J"/>
</settings>
  1. typeAliases:用于定义类型别名,简化映射文件中的类型引用。可以指定Java类的别名或指定包下的所有类的别名。示例代码如下:
<typeAliases>
    <typeAlias type="com.example.User" alias="User"/>
    <package name="com.example.model"/>
</typeAliases>
  1. typeHandlers:用于自定义类型处理器,用于处理Java类型与数据库类型之间的转换。示例代码如下:
<typeHandlers>
    <typeHandler handler="com.example.MyTypeHandler"/>
</typeHandlers>
  1. objectFactory:用于创建结果对象的工厂类,可以自定义对象的创建逻辑。示例代码如下:
<objectFactory type="com.example.MyObjectFactory"/>
  1. objectWrapperFactory:用于创建对象包装器的工厂类,可以自定义对象包装器的创建逻辑。示例代码如下:
<objectWrapperFactory type="com.example.MyObjectWrapperFactory"/>
  1. reflectorFactory:用于创建反射器的工厂类,可以自定义反射器的创建逻辑。示例代码如下:
<reflectorFactory type="com.example.MyReflectorFactory"/>
  1. plugins:用于配置插件,可以在MyBatis执行过程中拦截方法调用并添加额外的逻辑。示例代码如下:
<plugins>
    <plugin interceptor="com.example.MyPlugin">
        <property name="property1" value="value1"/>
        <property name="property2" value="value2"/>
    </plugin>
</plugins>
  1. environments:用于配置数据库连接环境,包括事务管理器和数据源的配置。示例代码如下:
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
            <property name="username" value="root"/>
            <property name="password" value="password"/>
        </dataSource>
    </environment>
</environments>
  1. databaseIdProvider:用于根据数据库厂商标识选择不同的SQL语句。示例代码如下:
<databaseIdProvider type="DB_VENDOR">
    <property name="Oracle" value="oracle"/>
    <property name="MySQL" value="mysql"/>
</databaseIdProvider>
  1. mappers:用于配置映射文件或映射接口。可以通过resource属性指定映射文件的路径,或者通过class属性指定映射接口的类名。示例代码如下:
<mappers>
    <mapper resource="com/example/mapper/UserMapper.xml"/>
    <mapper class="com.example.mapper.OrderMapper"/>
</mappers>

后续我们将以下面的xml配置文件进行对数据库的操作。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     "http://mybatis.org/dtd/mybatis-3-config.dtd">
     <!--configuration:根标签,包含整个配置文件的内容。-->
<configuration>
	<!--
         MyBatis核心配置文件中,标签的顺序:
         properties?,settings?,typeAliases?,typeHandlers?,
         objectFactory?,objectWrapperFactory?,reflectorFactory?,
         plugins?,environments?,databaseIdProvider?,mappers?
	-->
	<!--引入properties文件-->
	<properties resource="jdbc.properties" />
	<!--设置类型别名-->
	<typeAliases>
	<!--
		typeAlias:设置某个类型的别名
		属性:
			type:设置需要设置别名的类型
			alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名且不区分大小写
	-->
		<!--<typeAlias type="com.atguigu.mybatis.pojo.User"></typeAlias>-->
		<!--以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写-->
		<package name="com.miaow.mybatis.pojo"/>
	</typeAliases>
	<!--
		environments:配置多个连接数据库的环境
		属性:
			default:设置默认使用的环境的id
			environments:配置数据库连接环境,可以配置多个环境,例如开发环境、测试环境、生产环境等。
	-->
	<environments default="development">
 <!--
		environment:指定一个具体的数据库连接环境,包括事务管理器和数据源的配置。
		属性:
			id:表示连接数据库的环境的唯一标识,不能重复
	-->
	<environment id="development">
		<!--
			transactionManager:设置事务管理方式
			属性:
				type="JDBC|MANAGED"
				JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事务的提交或回滚需要手动处理
				MANAGED:被管理,例如Spring
		-->
			<transactionManager type="JDBC"/>
			<!--
				dataSource:配置数据源
				属性:
              type:设置数据源的类型
              type="POOLED|UNPOOLED|JNDI"
                 POOLED:表示使用数据库连接池缓存数据库连接
                 UNPOOLED:表示不使用数据库连接池
                 JNDI:表示使用上下文中的数据源
			-->
				<dataSource type="POOLED">
	              	 <!--设置连接数据库的驱动-->
	              	 <property name="driver" value="${jdbc.driver}"/>
	                 <!--设置连接数据库的连接地址-->
	                 <property name="url" value="${jdbc.url}"/>
	                 <!--设置连接数据库的用户名-->
	                 <property name="username" value="${jdbc.username}"/>
	                 <!--设置连接数据库的密码-->
	                 <property name="password" value="${jdbc.password}"/>
				</dataSource>
			</environment>
			<environment id="test">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
             <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
             <property name="url"value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"/>
             <property name="username" value="root"/>
             <property name="password" value="123456"/>
			</dataSource>
		</environment>
	</environments>
	<!--引入映射文件-->
	<mappers>
	<!--<mapper resource="mappers/UserMapper.xml"/>-->
	<!--
      以包为单位引入映射文件
         要求:
         1、mapper接口所在的包要和映射文件所在的包一致
         2、mapper接口要和映射文件的名字一致
	-->
		<package name="com.miaow.mybatis.mapper"/>
	</mappers>
</configuration>
  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miaow.Y.Hu

赏一口饭吃吧,大大们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值