之前用到的子工程已经比较乱了,重新按照(学习笔记1)创建一个子工程
在官网配置页首页就是这几个东西
- configuration(配置)
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
- environment(环境变量)
- transactionManager(事务管理器)
- dataSource(数据源)
- environment(环境变量)
- databaseIdProvider(数据库厂商标识)
- mappers(映射器)
1、environments(环境配置)
MyBatis 可以配置成适应多种环境,但每个 SqlSessionFactory 实例只能选择一种环境。
<?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>
<environments default="development"> <!--也就是这里可以有多个环境可以配置选择 通过给default=赋值选择环境-->
<environment id="development"> <!--这里是一个叫development的环境-->
<transactionManager type="JDBC"/> <!--事务管理器 有两种一个jdbc 一个是 managen-->
<dataSource type="POOLED"> <!--数据库连接池 不止一种,但是一般我们都用默认的POOLED-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!--加载mysql驱动 -->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis1?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/> <!-- 目前够用的url-->
<property name="username" value="root"/> <!--自己数据库的名字-->
<property name="password" value="root"/> <!--自己数据库的密码-->
</dataSource>
</environment>
<environment id="test"> <!--假设在这里重新创建一个叫test的环境-->
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments>
<!--每一个mapper都需要在mybatis核心配置文件中注册-->
<mappers>
<mapper resource="com/li/dao/UserMapper.xml" /> <!--用路径找到相应的文件 -->
</mappers>
</configuration>
2、properties(属性)重点
我们可以通过properties属性来实现应用配置文件
先写一个db.properties
这里需要注意的是url的命名不能直接是url要不然后面会报No suitable driver found for http://maven.apache.org的错
driver=com.mysql.cj.jdbc.Driver
urlName=jdbc:mysql://localhost:3306/mybatis1?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=root
用properties标签引入配置文件 需要注意的是 在xml配置文件中标签都是有顺序的,顺序不对会报错 如下图
properties标签引入的第一种方式 自闭和标签 所有的配置信息在外部配置文件种写完
<properties resource="db.properties" /> <!--properties标签引入外部配置文件 这里引入db.properties因为在同一目录直接写文件名就可以,如果不在同一目录就要写路径-->
第二种 用properties标签引入
<properties resource="db.properties" >
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis1?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</properties>
也可以一部分用外部引用,一部分用properties标签引入
<properties resource="db.properties" >
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis1?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
</properties>
引入后下面相应的配置文件也需要改
<configuration>
<properties resource="db.properties" >
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis1?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
</properties>
<environments default="development"> <!--也就是这里可以有多个环境可以配置选择 通过给default=赋值选择环境-->
<environment id="development"> <!--这里是一个叫development的环境-->
<transactionManager type="JDBC"/> <!--事务管理器 有两种一个jdbc 一个是 managen-->
<dataSource type="POOLED"> <!--数据库连接池 不止一种,但是一般我们都用默认的POOLED-->
<property name="driver" value="${driver}"/> <!--加载mysql驱动 -->
<property name="url" value="${urlName}"/> <!-- 目前够用的url-->
<property name="username" value="${username}"/> <!--自己数据库的名字-->
<property name="password" value="${password}"/> <!--自己数据库的密码-->
</dataSource>
</environment>
</environments>
需要注意的是外部引入的优先级大于properties标签引入