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、注意事项

核心配置中的子标签,是有顺序要求的。顺序如下:

学习笔记——Mybatis核心配置文件概述及根标签

发表回复