Mybatis学习之 配置文件

本文详细解析了MyBatis的XML配置文件,包括环境配置、数据源设置、事务管理及映射器注册等关键部分。通过Configuration和Environment类深入理解MyBatis的初始化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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">
<!-- mybatis 核心配置 -->
<configuration>
	<!-- 配置初始化环境(连接) -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<!-- 使用mybatis自带连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql:///jtsys" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="Mapper.xml" />
	</mappers>
</configuration>
//这是几个核心配置
<configuration>
	<environment id="development">
	<transactionManager type="JDBC"/>
	<dataSource type="POOLED">
	<mapper resource="Mapper.xml"/>
</configuration>

小结 mybatis-configs.xm 配置信息封装在一个Configuration类 而这个类有一个属性 protected Environment environment

public class Configuration {
  protected Environment environment;
  ...
}

Environment 类封装了**environments default=“development”**配置文件里的

public final class Environment {
  private final String id;
  private final TransactionFactory transactionFactory;
  private final DataSource dataSource;
}
... get/set方法 构造函数 
public interface TransactionFactory {

   //设置事务工厂自定义属性
  void setProperties(Properties props);
 /**
  *从现有连接创建{@link事务}。
  * @param conn现有数据库连接
  * @return事务
  * @since 3.1.0
 * /
 Transaction newTransaction(Connection conn);
  
  / * *
*从数据源创建一个{@link事务}。
* @param dataSource获取连接
* @param级别所需的隔离级别
* @param自动提交所需的自动提交
* @return事务
* @since 3.1.0
* /
  Transaction newTransaction(DataSource dataSource, TransactionIsolationLevel level, boolean autoCommit);
}

public interface DataSource  extends CommonDataSource, Wrapper {

//<p>尝试建立与该数据源的连接
//这个{@code DataSource}对象表示。
// @返回到数据源的连接
 //@exception SQLException如果发生数据库访问错误
//@throws java.sql。当驱动程序确定
//由{@code setLoginTimeout}方法指定的超时值
//已被超过,并且至少试图取消
	Connection getConnection() throws SQLException;
	

//<p>尝试建立与该数据源的连接
//这个{@code DataSource}对象表示。
//@param用户名连接所在的数据库用户
//@param密码用户的密码
//@返回到数据源的连接
//@exception SQLException如果发生数据库访问错误
//@throws java.sql。当驱动程序确定
//由{@code setLoginTimeout}方法指定的超时值
//已被超过,并且至少试图取消
//当前数据库连接尝试

	Connection getConnection(String username, String password)
    throws SQLException;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值