• 3、核心配置文件



    【尚硅谷】SSM框架全套教程-讲师:杨博超

    失败,是正因你在距成功一步之遥的时候停住了脚步。

    3、核心配置文件

    3.1、介绍

    1 文件名

    mybatis默认:mybatis-config.xml 不喜欢可以改

    2 排列顺序

    mybatis有默认顺序,不按顺序排列会报错,有些设置没有写,会自动被下一位顶上。

    核心配置文件中的标签必须按照固定的顺序:

    
    <configuration>
    
        <properties />
    	
        <settings>settings>
    	
        <typeAliases>typeAliases>
    	
        <typeHandlers>typeHandlers>
    	
        <objectFactory>objectFactory>
    	
        <plugins>plugins>
    	
        <environments>
    	
           <environment>
    			
                <transactionManager />
    			
                <dataSource>dataSource>
            environment>
        environments>
    	
    	<databaseIdProvider>databaseIdProvider>
    	
        <mappers>mappers>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    3.2、configuration(配置)

    
    <configuration>configuration>
    
    • 1
    • 2

    3.3、properties(属性)

    1 引用properties文件

    
    <properties resource="druid.properties"/>
    
    • 1
    • 2

    2 配置文件

    <properties resource="org/mybatis/example/config.properties">
      <property name="username" value="dev_user"/>
      <property name="password" value="F2Fa3!33TYyg"/>
    properties>
    
    • 1
    • 2
    • 3
    • 4

    3 加载顺序

    优先读取properties 文件,当properties 没有的属性在读取配置文件中的属性。

    druid.properties文件

    创建properties文件,内容格式 前缀.key=value ,因为有可能引入多个properties文件,为了不会出现重名的key。

    druid.driver=com.mysql.cj.jdbc.Driver
    druid.url=jdbc:mysql://localhost:3306/mybatis?userUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
    druid.username=root
    druid.password=root
    
    • 1
    • 2
    • 3
    • 4

    3.4、settings(设置)

    这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

    详细官网查看

    1 设置日志:STDOUT_LOGGING

    在setting中添加,不需要再注入其他依赖,直接就能跑起来。

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    settings>
    
    • 1
    • 2
    • 3

    3.5、typeAliases(类型别名)

    类型别名可为Java类型设置一个缩写名字。

    
    <typeAliases>
      <typeAlias alias="user" type="pers.tianyu.pojo"/>
    typeAliases>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写

    <typeAliases>
      <package name="pers.tianyu.pojo"/>
    typeAliases>
    
    • 1
    • 2
    • 3

    使用注解设置

    @Alias("author")
    public class Author {
        ...
    }
    
    • 1
    • 2
    • 3
    • 4

    3.6、typeHandlers(类型处理器)

    MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。

    你可以重写已有的类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。

    3.7、objectFactory(对象工厂)

    每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。

    默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。

    如果想覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现。

    3.8、plugins(插件)

    1. mybatis-generator-core
    2. mybatis-plus
    3. 通用mapper

    3.9、environments(配置多个连接数据库环境)

    MyBatis 可以配置成适应多种环境。

    不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。

    
    <environments default="development">
    environments>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.10、environment(连接数据库环境)

    
    <environment id="development">
    environment>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.11、transactionManager(事务管理器)

    在 MyBatis 中有两种类型的事务管理器(也就是 type=“[JDBC|MANAGED]”):

    
    <transactionManager type="JDBC">
    
      <property name="skipSetAutoCommitOnClose" value="true"/>
    transactionManager>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.12、dataSource(数据源)

    dataSource: 设置数据源

    属性

    • type: 设置数据源的类型
    • 有三种内建的数据源类型(也就是 type=“[UNPOOLED|POOLED|JNDI]”)
    • UNPOOLED: 表示不使用数据库连接池
    • POOLED: 表示使用数据库连接池缓存数据库连接
    • JNDI: 表示使用上下文中的数据源

    c3p0数据源实现

    1. Maven依赖
    <dependency>
        <groupId>com.mchangegroupId>
        <artifactId>c3p0artifactId>
        <version>0.9.5.5version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 继承类
    import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    // 继承父类来构建新的数据源适配器
    public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
    
      public C3P0DataSourceFactory() {
        this.dataSource = new ComboPooledDataSource();
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 配置数据源
    <dataSource type="pers.tianyu.utils.C3P0DataSourceFactory">
        <property name="driverClass" value="${c3p0.driver}"/>
        <property name="jdbcUrl" value="${c3p0.url}"/>
        <property name="user" value="${c3p0.username}"/>
        <property name="password" value="${c3p0.password}"/>
    dataSource>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    druid数据源实现

    1. Maven依赖
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
        <version>1.2.11version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 继承类
    import com.alibaba.druid.pool.DruidDataSource;
    import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
    
    // 继承父类来构建新的数据源适配器
    public class DruidDataSourceFactory extends UnpooledDataSourceFactory {
        public DruidDataSourceFactory() {
            this.dataSource = new DruidDataSource();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 配置数据源
    <dataSource type="pers.tianyu.utils.DruidDataSourceFactory">
        <property name="driverClassName" value="${druid.driver}"/>
        <property name="url" value="${druid.url}"/>
        <property name="username" value="${druid.username}"/>
        <property name="password" value="${druid.password}"/>
    dataSource>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.13、databaseIdProvider(数据库厂商标识)

    MyBatis 可以根据不同的数据库厂商执行不同的语句。

    3.14、mappers(映射器)

    告诉mybatis去哪里找映射文件

    
    <mappers>
        <package name="pers.tianyu.mapper"/>
    mappers>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    最终会被加载到同一目录下

    在这里插入图片描述

    注意点

    1. mapper接口名字和映射文件名字必须一致。
    2. mapper接口和映射文件所在的包必须一致。
    3. 在resources中创建包,不能使用点作为分隔,应该使用/作为分隔,不然创建的是一个包。

    3.15、在idea中添加文件模板

    步骤

    1. 进入文件模板
      在这里插入图片描述

    2. 添加模板

    在这里插入图片描述

    1. 使用模板

    在这里插入图片描述

  • 相关阅读:
    图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型
    Cpolar - 本地 WebUI 账号登录失败解决方案
    Windows 利用Anaconda创建pytorch等环境
    MacOS罗技鼠标定义的功能键经常失灵
    RabbitMQ快速入门笔记
    面试突击:MVCC 和间隙锁有什么区别?
    16:00面试,16:08就出来了,问的问题有点变态。。。
    【前端知识】Node——http模块&url模块的常用操作
    在英国招生官眼中,对A-Level、IB和AP成绩认可度是多少?
    Sql-拉链法
  • 原文地址:https://blog.csdn.net/zhao854116434/article/details/126692340