首页 > 其他分享 >MyBatis核心配置文件详解

MyBatis核心配置文件详解

时间:2022-12-18 09:22:36浏览次数:53  
标签:jdbc 配置文件 数据源 引入 详解 使用 MyBatis type

目录

environments

可以配置多个环境,比如测试环境和开发环境 ; 使用id区分,不能重复。

    <environments default="development">
    
        <environment id="development">

            <!-- 事务管理器 -->
            <transactionManager type="JDBC"></transactionManager>

            <!-- 数据源 即连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
        
        <environment id="test">

            <!-- 事务管理器 -->
            <transactionManager type="JDBC"></transactionManager>

            <!-- 数据源 即连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
        
    </environments>

transactionManager

事务管理器,使用type来设置事务管理方式。

  • type

    JDBC:表示使用JDBC原生事务管理方式,即可以手动的开启关闭事务,手动的提交和回滚。

    MANAGED:被管理的,例如交给Spring管理。

DataSource

设置数据源,使用type 设置数据源的类型。

  • type

    POOLED:使用数据库连接池

    UNPOOLED:不使用数据库连接池,链接直接重新创建

    JNDI:表示使用上下文当中的数据源(了解即可)

引入jdbc.properties

resources 下创建 jdbc.properties 文件

jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.user=root
jdbc.password=123456

核心配置文件当中引入

<?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 文件 -->
    <properties resource="jdbc.properties"></properties>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/kailong/mappers/UserMapper.xml"></mapper>
    </mappers>
</configuration>

typeAliases

类型别名,在 Mapper 的 resultType 属性中可以使用简单类型别名

<?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 文件 -->
    <properties resource="jdbc.properties"></properties>

    <!-- 别名 -->
    <typeAliases>
        <typeAlias type="com.kailong.pojo.User" alias="user"></typeAlias>
        
        <!-- 也可以指定一个包下面的别名, 且不区分大小写, 跟上方 typeLias 不能同时使用 -->
        <package name="com.kailong.pojo"></package>
    </typeAliases>
  
    <!-- ... -->
</configuration>

在 Mapper.xml 文件中使用

<select id="getAllUser" resultType="user">
    SELECT * FROM t_user;
</select>

settings

核心全局设置, 下面是几个常用的

下划线转驼峰

<settings>
    <!-- 下划线 自动映射 驼峰 -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

延迟加载

如果某个查询不想使用懒加载,则在 association 和 collection 标签当中设置 fetchType 即可。

<settings>
    <!-- 延迟加载
        LazyLoadingEnabled: true,开启延迟加载
        aggressiveLazyLoading: false, 开启按需加载
    -->
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="false"/>
</settings>

Mappers

引入 映射文件的, 分为单个引入 和 包扫描的方式

<mappers>
    <mapper resource="mappers/UserMapper.xml"></mapper>

    <!--
        包扫描方式, 两个条件
        1. Mapper 接口和 Mapper.xml 必须在一个包下
        2. Mapper 接口必须和 Mapper.xml 名字一致
     -->
    <package name="com.kailong.mapper"/>
</mappers>

注意:resouces 下创建对应的目录放mapper.xml 文件

IDEA 核心配置模板及解释

<?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核心配置文件中,标签的顺序:
    properties?,settings?,typeAliases?,typeHandlers?,
    objectFactory?,objectWrapperFactory?,reflectorFactory?,
    plugins?,environments?,databaseIdProvider?,mappers?
  -->
  <!--引入properties文件-->
  <properties resource="jdbc.properties" />
  <!--设置类型别名-->
  <typeAliases>
    <!--
      typeAlias:设置某个类型的别名
      属性:
        type:设置需要设置别名的类型
        alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名
且不区分大小写
    -->
    <!--<typeAlias type="com.kailong.pojo.User"></typeAlias>-->
    <!--以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写-->
    <package name="com.kailong.pojo"/>
  </typeAliases>
  <!--
    environments:配置多个连接数据库的环境
    属性:
      default:设置默认使用的环境的id
  -->
  <environments default="development">
      <!--
      environment:配置某个具体的环境
      属性:
        id:表示连接数据库的环境的唯一标识,不能重复
    -->
    <environment id="development">
      <!--
        transactionManager:设置事务管理方式
        属性:
          type="JDBC|MANAGED"
          JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事
务的提交或回滚需要手动处理
          MANAGED:被管理,例如Spring
      -->
      <transactionManager type="JDBC"/>
      <!--
        dataSource:配置数据源
        属性:
          type:设置数据源的类型
          type="POOLED|UNPOOLED|JNDI"
          POOLED:表示使用数据库连接池缓存数据库连接
          UNPOOLED:表示不使用数据库连接池
          JNDI:表示使用上下文中的数据源
      -->
      <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>
    <environment id="test">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url"
value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <!--引入映射文件-->
  <mappers>
    <!--<mapper resource="mappers/UserMapper.xml"/>-->
    <!--
      以包为单位引入映射文件
      要求:
      1、mapper接口所在的包要和映射文件所在的包一致
      2、mapper接口要和映射文件的名字一致
    -->
    <package name="com.kailong.mapper"/>
  </mappers>
  </configuration>

标签:jdbc,配置文件,数据源,引入,详解,使用,MyBatis,type
From: https://www.cnblogs.com/kohler21/p/16989963.html

相关文章

  • DBGridEh全部属性设置详解
    DBGridEh全部属性设置详解 属性子选项 值 说明Allowedoperations[alopInsertEh,alopUpdateEh,alopDeleteEh,alopAppendEh]允许操作类型:插入、更新、删除、追加Al......
  • Pytorch框架详解之一
    Pytorch基础操作numpy基础操作定义数组(一维与多维)寻找最大值维度上升与维度下降数组计算矩阵reshape矩阵维度转换代码实现importnumpyasnpa=np.array([......
  • 详解逻辑回归与评分卡-用逻辑回归制作评分卡-重复值和缺失值处理【菜菜的sklearn课堂
    视频作者:菜菜TsaiTsai链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili在银行借贷场景中,评分卡是一种以分数形式来衡量一个客户的信用风......
  • Viper读取配置文件
    写项目时总会需要配置文件,Go语言中可以使用viper来读取配置文件。goget"github.com/spf13/viper"例子,现在有一个conf.yamlname:"helloViper"port:8080mode:"d......
  • springboot启动读取配置文件过程&自定义配置文件处理器
        最近看到看到spring的配置文件放在了resources/config/application.yal文件内部,第一次见。就想的研究下,springboot启动读取配置文件的过程。1.启动过程org.spring......
  • 框架第七课---图书管理系统详解
    ..homePage.html页面代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title>{#<scriptsrc="jQuery3.6.js"></scrip......
  • 关于app.comfig配置文件
    尝试手动创建一个和应用同名的.exe.config文件,右键属性设置为copy到可执行属输出目录下。使用ConfigurationManager.GetSection("")总也读取不到。然后删除执行目录下的......
  • Mybatis-Spring
    Mybatis-Spring版本关系图当前环境JDK8Mybatis-Spring2.1.0Mybatis3.5.11Log4j1.2.17lombok1.18.24SpringFramework5.3.20Dbcp2.9.0......
  • C# Log4net配置文件 总结
    前言因为项目日志太杂乱而且很大,打开一个就卡死了,何况用户电脑也扛不住日志积累,要做一个日志记录器管理日志。但对里面的配置有一些不熟悉(毕竟都是复制粘贴的),所以记录一......
  • 关于整数二分的详解
    //查找左边界SearchLeft简写SLintSL(intl,intr){while(l<r){intmid=l+r>>1;if(check(mid))r=mid;elsel=......