mybatis 核心配置的学习
1.核心配置文件(mybatis-config.xml)的作用
(一)核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
(二)核心配置文件存放的位置在: src/main/resources 目录下面
(三)核心配置文件的命名一般为:mybatis-config.xml 也可以自己取名字
2.创建核心配置文件

3.配置核心文件
1.进入mybatis教程网:https://mybatis.p2hp.com/getting-started.html ,复制一份核心配置文件代码
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "https://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <environments default="development"> 7 <environment id="development"> 8 <transactionManager type="JDBC"/> 9 <dataSource type="POOLED"> 10 <property name="driver" value="${driver}"/> 11 <property name="url" value="${url}"/> 12 <property name="username" value="${username}"/> 13 <property name="password" value="${password}"/> 14 </dataSource> 15 </environment> 16 </environments> 17 <mappers> 18 <mapper resource="org/mybatis/example/BlogMapper.xml"/> 19 </mappers> 20 </configuration>
2. 对代码进行解读
1 // 在 XML 解析过程中,告诉解析器 XML 的版本号和编码规范,避免解析错误 2 <?xml version="1.0" encoding="UTF-8" ?>
1 // <!DOCTYPE configuration>:声明这个 XML 文件的根标签是 <configuration>, 2 // 要解析使用就用 <configuration>里面的内容 3 4 // PUBLIC....dtd:声明了 XML 使用 DTD 规范,并用在线 DTD 文件检查 XML 格式, 5 // 确保 XML 写法符合 MyBatis 规则 6 7 <!DOCTYPE configuration 8 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 9 "https://mybatis.org/dtd/mybatis-3-config.dtd">
2.1 重要代码解读
1. <environments>
- 这个标签用于定义多个数据库环境,在 MyBatis 中,可以配置多个数据库连接环境,比如开发环境、生产环境等。
default="development"表示默认使用id="development"的配置,也就是说,如果没有特别指定环境,MyBatis 将自动选择development环境。
2. <environment id="development">
- 每个
<environment>标签定义一个数据库连接环境,可以有多个<environment>配置,每个配置都有一个唯一的id(这里是development)。 id="development":指定了这个环境的标识符为development,意味着该配置用于开发环境。
3. <transactionManager type="JDBC"/>
- 这个配置定义了 MyBatis 的事务管理器类型。
type="JDBC":表示事务管理器使用 JDBC 进行管理。这意味着 MyBatis 会通过 JDBC 提供的事务功能来进行事务管理。- 你也可以设置为其他类型的事务管理器,如
MANAGED(由外部容器管理事务)。
4. <dataSource type="POOLED">
dataSource标签定义了数据库连接池的配置,用于管理数据库连接。type="POOLED":指定使用连接池(即数据库连接池模式)。连接池是为了复用数据库连接,提高性能,避免每次执行 SQL 时都要创建新连接。
5. <property name="xxx" value="${xxx}"/>
- 这些
<property>标签定义了数据库连接池的属性,配置数据库连接的详细信息:
name="driver":数据库驱动(比如com.mysql.cj.jdbc.Driver)。name="url":数据库连接的 URL(比如jdbc:mysql://localhost:3306/mydb)。name="username":数据库用户名。name="password":数据库密码。
value="${xxx}"表示从外部配置中读取变量值。${xxx}是一个占位符,MyBatis 会从配置文件中读取对应的值(如从properties文件或环境变量中读取)。
1 <environments default="development"> 2 <environment id="development"> 3 <transactionManager type="JDBC"/> 4 <dataSource type="POOLED"> 5 <property name="driver" value="${driver}"/> 6 <property name="url" value="${url}"/> 7 <property name="username" value="${username}"/> 8 <property name="password" value="${password}"/> 9 </dataSource> 10 </environment> 11 </environments>
6. mappers中可以注册多个mapper文件,一个mapper文件对应一个对象,mapper文件中存放mysql语句,作用是实现将一张表里面的数据自动转换成对象(也就是将查询结果转换成java对象的映射规则)
1 <mappers> 2 <mapper resource="org/mybatis/example/BlogMapper.xml"/> 3 </mappers>
对第6点不太清楚怎么自动转换成对象的,可以看后面关于'BlogMapper.xml'的解释,里面有标签带有 resultType="Blog" 属性,Blog是一个自己创建的表的对象,执行完查询语句之后,如果有resultType="Blog"
就会创建一个 Blog 对象,并自动把查询结果中的字段值填充进去 , 最终返回的是一个 Java 对象
例如:
1 // 这个是BlogMapper.xml里面的内容 2 <select id="selectBlog" resultType="Blog"> 3 SELECT id, title, content FROM blogs WHERE id = #{id} 4 </select> 5 // 这个是自动执行的,实际上BlogMapper.xml文件里面没有 6 Blog blog = new Blog(); 7 blog.setId(1); 8 blog.setTitle("MyBlog"); 9 blog.setContent("This is a blog post.")
4.添加一个核心配置文件例子:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "https://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <environments default="development"> 7 <environment id="development"> 8 <transactionManager type="JDBC"/> 9 <dataSource type="POOLED"> 10 <property name="driver" value="com.mysql.cj.jdbc.Driver"/> 11 <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> 12 <property name="username" value="root"/> 13 <property name="password" value="root"/> 14 </dataSource> 15 </environment> 16 </environments> 17 <mappers> 18 <!-- 注册映射器--> 19 <mapper resource="mapper/UserMapper.xml"/> 20 </mappers> 21 </configuration>

浙公网安备 33010602011771号