1. Mybatis配置属性优化

MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:

springboot mybatis连接池大小设置 mybatis连接池的配置属性_数据库


1.1 环境配置 environments

  • MyBatis 可以配置成适应多种环境
  • 不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境
  • 学会使用配置多套运行环境!
  • MyBatis默认的事务管理器就是JDBC ,连接池:POOLED

POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,
避免了创建新的连接实例时所必需的初始化和认证时间。 
这种处理方式很流行,能使并发 Web 应用快速响应请求。

mybatis-config.xml

<!--    通过设置default值(id)来选择默认使用的环境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--以下数据都是我自己的数据库的信息,请酌情修改-->
                <!--&表示转义字符,其含义就是&-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=true"/>
                <property name="username" value="root"/>
                <property name="password" value="317525"/>
            </dataSource>
        </environment>

        <!--        id就是环境的标识-->
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--以下数据都是我自己的数据库的信息,请酌情修改-->
                <!--&表示转义字符,其含义就是&-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=true"/>
                <property name="username" value="root"/>
                <property name="password" value="317525"/>
            </dataSource>
        </environment>
    </environments>

1.2 属性 properties

我们可以通过properties属性来实现引用配置文件

这些属性可以在外部进行配置,并可以进行动态替换。
你既可以在典型的 Java 属性文件中配置这些属性,
也可以在 properties 元素的子元素中设置。[db.poperties]

1.2.1 编写一个配置文件

springboot mybatis连接池大小设置 mybatis连接池的配置属性_数据库_02


db.poperties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username=root
password=317525

1.2.2 引入配置文件

  • 1.可以直接引入外部文件
  • 2.可以在其中增加一些属性配置
  • 3.如果两个文件有同一个字段,优先使用外部配置文件的

mybatis-config.xml

<?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核心配置文件-->
<configuration>
    <!--    引入外部配置文件-->
    <properties resource="db.properties"/>
    <!--    通过设置default值(id)来选择默认使用的环境-->
    <environments default="test">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--以下数据都是我自己的数据库的信息,请酌情修改-->
                <!--&表示转义字符,其含义就是&-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=true"/>
                <property name="username" value="root"/>
                <property name="password" value="317525"/>
            </dataSource>
        </environment>

        <!--        id就是环境的标识-->
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--以下数据都是我自己的数据库的信息,请酌情修改-->
                <!--&表示转义字符,其含义就是&-->
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--    每一个Mapper.xml都需要在Mybatis核心配置文件中注册!-->
    <mappers>
        <mapper resource="com/tian/dao/UserMapper.xml"/>
    </mappers>
</configuration>

1.2.3 测试代码:

UserMapperTest.java

@Test
    public void test() {
        //        获取SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        try {
//        执行sql
//        方式1: getMapper
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userList = mapper.getUserList();

//        方式2: 不推荐
//        List<User> userList = sqlSession.selectList("com.tian.dao.UserDao.getUserList");

//      userList.for IDEA快捷键
            for (User user : userList) {
                System.out.println(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //   关闭资源非常重要   关闭session
            sqlSession.close();
        }
    }

运行结果:

springboot mybatis连接池大小设置 mybatis连接池的配置属性_java_03


springboot mybatis连接池大小设置 mybatis连接池的配置属性_数据库_04