0
点赞
收藏
分享

微信扫一扫

【MyBatis】| MyBatis核⼼配置⽂件详解

张宏涛心理 2023-01-20 阅读 129

目录

一:MyBatis核⼼配置⽂件详解

1. Mybatis核心配置文件之多环境

2. Mybatis事务管理器

3. 对数据源的深度剖析

4. properties和mapper标签的配置和使用


一:MyBatis核⼼配置⽂件详解

<?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">

    <configuration>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/po
wernode"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>

        <mappers>
            <mapper resource="CarMapper.xml"/>
        </mappers>
    </configuration>

1. Mybatis核心配置文件之多环境

<?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">
<configuration>

   <!-- 默认获取的是mybatis数据库-->
    <environments default="mybatisDB">
        <!--连接的是mybatis数据库-->
        <environment id="mybatisDB">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>
        <!--连接的是bjpowernode数据库-->
        <environment id="bjpowernodeDB">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/bjpowernode"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>   
    </environments>

    <mappers>
        <!--关联CarMapper.xml配置文件-->
        <mapper resource="CarMapper.xml"/>
    </mappers>

</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="car">
    <insert id="insertCar">
        insert into t_car values(null,'8888','特斯拉',30.0,'2000-11-11','燃油车')
    </insert>
</mapper>
package com.bjpowernode.mybatis.test;

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;

/**
 * @Author:朗朗乾坤
 * @Package:com.bjpowernode.mybatis.test
 * @Project:mybatis
 * @name:ConfigurationTest
 * @Date:2022/12/30 20:15
 */
public class ConfigurationTest {
    @Test
    public void testEnvironment() throws Exception{
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 使用默认的
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
        // 自己指定连接数据库的对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"), "bjpowernodeDB");
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 执行sql
        int count = sqlSession.insert("car.insertCar");
        System.out.println(count);
        sqlSession.commit();
        sqlSession.close();
    }
}

2. Mybatis事务管理器

 <transactionManager type="JDBC"/>

3. 对数据源的深度剖析

<dataSource type="POOLED">
     <property name="driver" value="com.mysql.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://localhost:3306/bjpowernode"/>
     <property name="username" value="root"/>
     <property name="password" value="123"/>
     <!--连接池中最多正在使用的连接对象的数量上限,默认是10-->
     <property name="poolMaximumActiveConnections" value="10" />
     <!--最多的空闲数量-->
     <property name="poolMaximumIdleConnections" value="5" />
     <!--强行让让某个连接空闲,超时时间的设置-->
     <property name="poolMaximumCheckoutTime" value="100000" />
     <!--每隔2秒打印日志,并且尝试获取连接对象-->
     <property name="poolTimeToWait" value="2000" />
</dataSource>

4. properties和mapper标签的配置和使用

<?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">
<configuration>
    <!-- 单独抽取出来连接数据库的代码-->
    <properties>
        <property name="jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis" />
        <property name="jdbc.username" value="root" />
        <property name="jdbc.password" value="123" />
    </properties>
    <settings>
        <setting name="logImpl" value="SLF4J"/>
    </settings>
    <!-- 默认获取的是mybatis数据库-->
    <environments default="mybatisDB">
        <!--连接的是mybatis数据库-->
        <environment id="mybatisDB">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>      
    </environments>
    <mappers>
        <!--关联CarMapper.xml配置文件-->
        <mapper resource="CarMapper.xml"/>
    </mappers>
</configuration>

jdbc.properties配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123

使用resource引入配置文件

<?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">
<configuration>
  
    <!--resource一定是从类路径下开始查找资源-->
    <properties resource="jdbc.properties" />

    <settings>
        <setting name="logImpl" value="SLF4J"/>
    </settings>

    <!-- 默认获取的是mybatis数据库-->
    <environments default="mybatisDB">
        <!--连接的是mybatis数据库-->
        <environment id="mybatisDB">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--关联CarMapper.xml配置文件-->
        <mapper resource="CarMapper.xml"/>
    </mappers>

</configuration>
<!--从绝对路径下加载-->
<properties url="file:///d:/jdbc.properties" />
举报

相关推荐

0 条评论