MyBatis核心配置文件

  • environments标签

    • 配置mybatis环境的标签

    • 在该标签体中可以配置mybatis的多个环境,一个环境就对应一个数据库,也就对应一个SqlSessionFactory对象

    • default属性。用来指定默认环境,也就是说在不指定环境的情况下,创建的SqlSessionFactory对象对应的是默认环境中的数据库。那么也就是说我们可以在创建SqlSessionFactory的时候指定其对应的环境(数据库)。

    • transactionManager标签:mybatis的事务管理器。有两种值

      • jdbc:mybatis负责管理事务,其底层采用jdbc事务管理机制
      • managed:mybatis不负责管理事务,交给其他容器(Spring)来管理
      • mybatis底层提供了transcation接口来管理事务。如果选择jdbc,则会实例化JdbcTranscation对象;如果选择managed,则会实例化ManagedTranscation对象
    • dataSource标签:数据源。为程序提供Connection对象。实际上,dataSource是一套规范,凡是为程序提供Connection对象的,都叫数据源。这套规范是JDK提供的,我们也能写数据源组件,只要实现javax.sql.DataSource接口中的所有方法即可。数据库连接池就是一个数据源(提供了Connection对象)

      • 常见的数据源(数据库连接池)组件:druid、c3p0、dbcp等
      • type属性:指定数据源的类型,即使用什么方法获得Connection对象
      • type属性有3个值
        • UNPOOLED:不使用数据库连接池,也就是说每进行一次数据库连接,都创建一个新的Connection对象
        • POOLED:使用mybatis自己提供的数据库连接池
        • JNDI:集成第三方的数据库连接池。它其实是一套规范,大部分web服务器都实现了这套规范,因此可以在web容器中配置三方数据库连接池,那么mybatis中使用的就是web容器中集成的三方数据库连接池
      • 配置具体的数据库连接池参数标签:property。需要根据业务场景进行设置合适的参数,可以设置连接池最大连接数,空闲数等
  • properties标签:相当于一个Map集合,key和value都是String类型。可以在该标签体内配置很多配置信息

    • <properties>
          <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
      </properties>
      
      <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/db01"/>
                      <property name="username" value="root"/>
                      <property name="password" value="dch"/>
                      <!--配置连接池最大连接数为5-->
                      <property name="poolMaximumActiveConnections" value="5"/>
                  </dataSource>
              </environment>
          </environments>