Mybatis框架系列五之------MyBatis 配置文件

目录

Mybatis框架系列五之------MyBatis 配置文件

一、主配置文件

二、dataSource 标签

1、dataSource 类型

2、dataSource 配置

三、事务

1、默认需要手动提交事务

2、自动提交事务

四、使用数据库属性配置文件

1、在 classpath 路径下,创建 properties 文件

2、使用 properties 标签

3、使用 key 指定值

五、typeAliases(类型别名)

六、mappers(映射器)

Mybatis框架系列

Github项目地址


Mybatis框架系列五之------MyBatis 配置文件

一、主配置文件

之前项目中使用的 mybatis.xml 是主配置文件。
主配置文件特点:
1. xml 文件,需要在头部使用约束文件

<?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">

2.根元素,<configuration>
3.主要包含内容:

  • 定义别名
  • 数据源
  • mapper 文件

二、dataSource 标签

Mybatis 中访问数据库,可以连接池技术,但它采用的是自己的连接池技术。在 Mybatis 的 mybatis.xml配置文件中,通过<dataSource type=”pooled”>来实现 Mybatis 中连接池的配置。

1、dataSource 类型

上图看出 Mybatis 将数据源分为三类:

  • UNPOOLED 不使用连接池的数据源
  • POOLED 使用连接池的数据源
  • JNDI 使用 JNDI 实现的数据源

其中 UNPOOLED ,POOLED 数据源实现了 javax.sq.DataSource 接口, JNDI 和前面两个实现方式不同,了解可以。

2、dataSource 配置

在 MyBatis.xml 主配置文件,配置 dataSource:

<dataSource type="POOLED">
    <!--连接数据库的四个要素-->
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url"
value="jdbc:mysql://localhost:3306/ssm?charset=utf-8"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
</dataSource>

MyBatis 在初始化时,根据<dataSource>的 type 属性来创建相应类型的的数据源 DataSource,即:
type=”POOLED”:MyBatis 会创建 PooledDataSource 实例
type=”UNPOOLED” : MyBatis 会创建 UnpooledDataSource 实例
type=”JNDI”:MyBatis 会从 JNDI 服务上查找 DataSource 实例,然后返回使用

三、事务

1、默认需要手动提交事务

Mybatis 框架是对 JDBC 的封装,所以 Mybatis 框架的事务控制方式,本身也是用 JDBC 的 Connection对象的 commit(), rollback() .
Connection 对象的 setAutoCommit()方法来设置事务提交方式的。自动提交和手工提交、

<transactionManager type="JDBC"/>

该标签用于指定 MyBatis 所使用的事务管理器。MyBatis 支持两种事务管理器类型:JDBC 与 MANAGED。

JDBC:使用 JDBC 的事务管理机制。即,通过 Connection 的 commit()方法提交,通过 rollback()方法
回滚。但默认情况下,MyBatis 将自动提交功能关闭了,改为了手动提交。即程序中需要显式的对
事务进行提交或回滚。从日志的输出信息中可以看到。

MANAGED:由容器来管理事务的整个生命周期(如 Spring 容器)。

2、自动提交事务

设置自动提交的方式,factory 的 openSession() 分为有参数和无参数的。


有参数为 true,使用自动提交,可以修改 MyBatisUtil 的 getSqlSession()方法。

  • session = factory.openSession(true);

再执行 insert 操作,无需执行 session.commit(),事务是自动提交的

四、使用数据库属性配置文件

为 了方便对数据库连接的管理,DB 连接四要素数据一般都是存放在一个专门的属性文件中的。MyBatis主配置文件需要从这个属性文件中读取这些数据。

1、在 classpath 路径下,创建 properties 文件

在 resources 目录创建 jdbc.properties 文件,文件名称自定义。

2、使用 properties 标签

修改主配置文件,文件开始位置加入:

3、使用 key 指定值

<dataSource type="POOLED">
    <!--使用 properties 文件: 语法 ${key}-->
    <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>

五、typeAliases(类型别名)

Mybatis 支持默认别名,我们也可以采用自定义别名方式来开发,主要使用在<select resultType=”别名”>mybatis.xml 主配置文件定义别名:

<typeAliases>
    <!--
        定义单个类型的别名
        type:类型的全限定名称
        alias:自定义别名
    -->
    <typeAlias type="com.bjpowernode.domain.Student" alias="mystudent"/>
    <!--
        批量定义别名,扫描整个包下的类,别名为类名(首字母大写或小写都可以)
        name:包名
    -->
    <package name="com.bjpowernode.domain"/>
    <package name="...其他包"/>
</typeAliases>

mapper文件,使用别名表示类型

<select id="selectStudents" resultType="mystudent">
    select id,name,email,age from student
</select>

六、mappers(映射器)

1、<mapper resource=" " />

使用相对于类路径的资源,从 classpath 路径查找文件
例如:<mapper resource="com/bjpowernode/dao/StudentDao.xml" />

2、<package name=""/>

指定包下的所有 Dao 接口
如:<package name="com.bjpowernode.dao"/>
注意:此种方法要求 Dao 接口名称和 mapper 映射文件名称相同,且在同一个目录中。

Mybatis框架系列


Github项目地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zpeien

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值