当前位置:   article > 正文

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文件,此后就可以在xml文件中使用 "${key}" 的方式访问value-->
<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类型设置一个缩写名字。

<!--
typeAlias:设置类型的别名,即为某个具体的类型设置一个别名
			在mybatis的范围中,就可以使用别名表示一个具体的类型
属性:
	type:设置需要设置别名的类型
	alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名
		   且不区分大小写
-->
<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:设置默认使用的环境的id
-->
<environments default="development">
</environments>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

<!--
environment:配置某个具体的连接数据库环境
属性:
id:表示连接数据库的环境的唯一标识,不能重复
-->
<environment id="development">
</environment>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.11、transactionManager(事务管理器)

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

<!--
transactionManager:设置事务管理方式
属性:
type=设置事务管理的方式
type="JDBC|MANAGED"
JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事
务的提交或回滚需要手动处理
MANAGED:被管理,例如Spring
-->
<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.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.5</version>
</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.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.11</version>
</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去哪里找映射文件

<!--以包的方式引入映射文件,但是必须满足两个条件
1. mapper接口所在的包要和映射文件所在的包一致。
2. mapper接口名字和映射文件名字必须一致
-->
<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. 使用模板

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/282232
推荐阅读
相关标签
  

闽ICP备14008679号