主配置文件的属性 :
设置mybatis输出日志 :(重复之前)
setting是mybatis的全局设置
它可以指定很多的name ,以及对应的值
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
定义别名 :(重复之前)
<!--定义别名-->
<typeAliases>
<!--
可以指定一个类型 , 一个自定义别名
type : 自定义类型的全限定名称
alias : 自定义的别名
-->
<typeAlias type="org.sichen.domain.QueryParam" alias="qp"/>
<typeAlias type="org.sichen.domain.Student" alias="stu"/>
<!--指定package标签 , 该文件夹下的所有类的名称就是别名-->
<package name="org.sichen.domain.Student"/>
</typeAliases>
环境变量的设置 :(了解)
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--
transactionManager : 提交事务 , 回滚事务的方式
type : 事务处理的类型
(1)JDBC 表示mybatis底层是调用JDBC中的Connection对象 , commit ,rollback
(2)MANAGED : 把mybatis的事务处理委托给其他的容器(可以是一个服务器软件 , 或者框架(Spring))
-->
<dataSource type="POOLED">
<!--
dataSource : 表示数据源 , Java体系中 , 规定实现了javax.sql.DataSource接口的都是数 据源
数据源 : 表示Connection对象的
type : 指定数据源的类型
(1)POOLED : 使用连接池 , mybatis会创建PooledDataSource类
(2)UNPOOLED : 不使用连接池 , 在每次执行sql语句时 , 先创建连接 , 执行sql ,在关 闭连接
mybatis会创建一个UnPooledDataSource , 管理Connection对象的使用
(3)JNDI : java的命名和目录服务 , (相当于windows的注册表)
-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="acpl159357"/>
</dataSource>
</environment>
</environments>
数据库属性配置文件:(重要)
把数据库连接信息放到一个单独的文件中 , 和mybatis主配置文件分开 , 目的是便于修改 , 保存 , 处理多个数据库的信息
(1) 在Sources 目录中定义一个属性配置文件 , xxx.properties
在属性配置文件中 , 定义数据 , 格式是 key = value
key : 一般使用 . 做多级目录的
例如 : jdbc.mysql.Driver = com.mysql.cj.jdbc,Driver
jdbc.url = jdbc:mysql:// …
这么做的目的是 : 使结构更加清晰 , 能够一眼看出哪几个是一起的
(2) 在mybatis的主配置文件 , 使用 指定文件的位置
在需要值的地方 , ${key}
<configuration>
<!--指定properties文件的位置 , 从类路径根开始找文件-->
<properties resource="jdbc.properties"/>
</configuration>
<!--driver : 数据库的驱动类名-->
<property name="driver" value="${jdbc.Driver}"/>
<!--连接数据库的url字符串-->
<property name="url" value="${jdbc.url}"/>
<!--访问数据库的用户名称-->
<property name="username" value="${jdbc.user}"/>
<!--访问数据库的用户密码-->
<property name="password" value="${jdbc.password}"/>
指定多个mapper文件:
第一种方式 : 就是上边有的 , 每指定一个文件 , 写一个mapper
第二种方式 : (使用包名)
name是你的mapper文件所在的包的包名全限定名称 ,
在这个包下的所有mapper文件 , 都能够被一次性加载进mybatis
**注意 : **
- mapper 文件名称必需要和接口名称一样 , 区分大小写
- mapper文件和 dao接口必须在同一目录之中
<mappers>
<package name="">
</mappers>
typeHandlers 标签 : 自定义类型处理器
首先要编写数据类型的转换器类 ,
public class TypeHandler extends BaseTypeHandler<Date> {
//将java类型 转换为 数据库需要的类型
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException {
long time = parameter.getTime();
ps.setLong(i,time);
}
//将数据库中类型转换为java类型
//ResultSet : 查询出的结果集
//String : 要转换的字段名称
@Override
public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
return null;
}
//将数据库中类型转换为java类型
@Override
public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return null;
}
//将数据库中类型转换为java类型
@Override
public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return null;
}
然后在MyBatis核心配置文件中注册类型处理器
<typeHandlers>
<typeHandler class="自定义数据转换类型的全限定名称">
</typeHandler>
</typeHandlers>