2023-01-09 一、Mybatis核心配置文件概述及根標簽 1、核心配置文件的概述(即“mybatis-config.xml”) MyBatis的配置文件包含了會深深影響MyBatis行為的設置和屬性信息。 2、標簽 (1)configuration(配置) (2)properties(屬性) ...
2023-01-09
一、Mybatis核心配置文件概述及根標簽
1、核心配置文件的概述(即“mybatis-config.xml”)
MyBatis的配置文件包含了會深深影響MyBatis行為的設置和屬性信息。
2、標簽
(1)configuration(配置)
(2)properties(屬性)
作用:定義或引入外部屬性文件
在“day02_mybatis.src.main.resources”文件夾下創建“資料庫的連接文件”,命名為“db.properties”
①db.properties裡面的內容
#裡面存放的數據格式為key=value
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC
db.username=設置自己的資料庫的用戶名稱
db.password=資料庫的密碼
②“day02_mybatis.src.main.resources”下的“mybatis-config.xml”中的內容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${db.driver}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> </dataSource> </environment> </environments> <!--設置映射文件--> <mappers> <mapper resource="mapper/EmployeeMapper.xml"/> </mappers> </configuration>
③“day02_mybatis.src.test.java.TestMybatis”中的代碼
import com.hh.mybatis.mapper.EmployeeMapper; import com.hh.mybatis.pojo.Employee; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; public class TestMybatis { @Test public void TestMybatis(){ try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通過sqlSessionFactory獲取sqlSession對象 SqlSession sqlSession = sqlSessionFactory.openSession(); //獲取EmployeeMapper的代理對象 EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); System.out.println("employeeMapper.getClass().getName() = " + employeeMapper.getClass().getName()); Employee employee = employeeMapper.selectEmployee(1); System.out.println("employee = " + employee); } catch (IOException e) { e.printStackTrace(); } } }
④測試代碼,代碼OK
(3)settings(設置)
①作用:這是MyBatis中極為重要的調整設置,它們會改變MyBatis的運行行為
②例如:mapUnderscoreToCamelCase屬性:表示是否開啟駝峰命名自動映射,預設值是false,如設置true會自動將欄位last_name與lastName屬性自動映射。
③在“day02_mybatis.src.main.resources”下的“mybatis-config.xml”中的“<settings>”設置
<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
(4)typeAliases(類型別名)
①作用:類型別名可為java類型設置一個縮寫名字。
②xml代碼:
<typeAliases> <typeAlias type="com.hh.mybatis.pojo.Employee" alias="employee"></typeAlias> </typeAliases>
其中的xml代碼也可以簡寫為
<typeAliases> <package name="com.hh.mybatis.pojo"/> </typeAliases>
③之後,可以將“day02_mybatis.src.mian.resources.mapper”下的“EmployeeMapper.xml”中的“resultType”設置為“employee”,如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.hh.mybatis.mapper.EmployeeMapper"> <select id="selectEmployee" resultType="employee"> SELECT id, last_name, email, salary FROM tbl_employee WHERE id=#{empId} </select> </mapper>
(5)typeHandlers(類型處理器)
(6)objectFactory(對象工廠)
(7)plugins(插件)
(8)environments(環境配置)
①作用:設置資料庫的連接環境
②實例xml代碼
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${db.driver}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> </dataSource> </environment> </environments>
(9)databaseldProvider(資料庫廠商標識)
(10)mappers(映射器)
①作用:設置映射文件路徑
②xml代碼:
例如:
<!--設置映射文件--> <mappers> <mapper resource="mapper/EmployeeMapper.xml"/> </mappers>
3、註意事項
核心配置中的子標簽,是有順序要求的。順序如下: