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>

 

posted @ 2025-03-11 22:32  浅影阿  阅读(58)  评论(0)    收藏  举报