MyBatis-05 (配置文件)

                                  配置文件

                                                                                             个人博客:www.xiaobeigua.icu

内容列表

  • 主配置文件
  • dataSource 标签
  • 事务
  •  别名
  •  mapper 文件

5.1 主配置文件

         之前项目中使用的 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 文件

 

 


5.2   dataSource 标签

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

 

5.2.1  dataSource 类型

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

UNPOOLED  :不使用连接池的数据源

POOLED  : 使用连接池的数据源

JNDI : 使用 JNDI 实现的数据源

 

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

 

 

5.2.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  实例,然后返回使用

 


5.3  事务

 

(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(),事务是自动提交的

 


5.4 使用数据库属性配置文件

       为了方便对数据库连接的管理,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>

 

 


5.5  typeAliases(类型别名)

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

<typeAliases>

<!--

定义单个类型的别名type:类型的全限定名称alias:自定义别名

    -->

   <typeAlias type="com.bjpowernode.domain.Student" alias="mystudent"/>

<!--

批量定义别名,扫描整个包下的类,别名为类名(首字母大写或小写都可以)

name:包名  (以 com.xiaobeigua.domain为例 )

    -->

<package name="com.xiaobeigua.domain"/>

<package name="...其他包"/>

 </typeAliases>

 

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

<select id="selectStudents" resultType="mystudent">

 select id,name,email,age from student

</select>

 

 


5.6  mappers(映射器)

 

(1)<mapper resource=" " />

           使用相对于类路径的资源,从 classpath 路径查找文件

          例如:<mapper resource="com/bjpowernode/dao/StudentDao.xml" />

 

(2)<package name=""/>

          指定包下的所有 Dao 接口

          例如:<package name="com.bjpowernode.dao"/>

注意:此种方法要求 Dao 接口名称和 mapper 映射文件名称相同,且在同一个目录中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值