八十五、MyBatis 配置文件

举报
托马斯-酷涛 发表于 2022/05/26 01:28:45 2022/05/26
【摘要】 文章目录 主配置文件 dataSource标签 dataSource类型 dataSource配置 事务 使用数据库属性配置文件 typeAliases(类型别名) mappers(映射器) 主配置文件 之前项目中使用的 mybatis.xml 是主配置文件。 主配置文件特点: 1、xml ...

文章目录

主配置文件

dataSource标签

dataSource类型

dataSource配置

事务

使用数据库属性配置文件

typeAliases(类型别名)

mappers(映射器)


主配置文件

之前项目中使用的 mybatis.xml 是主配置文件。

主配置文件特点:

1、xml 文件,需要在头部使用约束文件


  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">

2、根元素,<configuration>

3、主要内容包括:

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

dataSource标签

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

dataSource类型

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

  1. UNPOOLED 不使用连接池的数据源
  2. POOLED 使用连接池的数据源
  3. JNDI 使用 JNDI 实现的数据源

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

dataSource配置

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


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

MyBatis 在初始化时,根据的 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()方法。


  
  1. session = factory.openSession(true);
  2. 再执行 insert 操作,无需执行 session.commit(),事务是自动提交的

使用数据库属性配置文件

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

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

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

 (2) 使用 properties 标签

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

 (3) 使用 key 指定值


  
  1. <dataSource type="POOLED">
  2. <!--使用 properties 文件: 语法 ${key}-->
  3. <property name="driver" value="${jdbc.driver}"/>
  4. <property name="url" value="${jdbc.url}"/>
  5. <property name="username" value="${jdbc.username}"/>
  6. <property name="password" value="${jdbc.password}"/>
  7. </dataSource>

typeAliases(类型别名)

Mybatis 支持默认别名,我们也可以采用自定义别名方式来开发,主要使用在<select  resultType="别名"> 

mybatis.xml 主配置文件定义别名:


  
  1. <typeAliases>
  2. <!--
  3. 定义单个类型的别名
  4. type:类型的全限定名称
  5. alias:自定义别名
  6. -->
  7. <typeAlias type="com.bjpowernode.domain.Student" alias="mystudent"/>
  8. <!--
  9. 批量定义别名,扫描整个包下的类,别名为类名(首字母大写或小写都
  10. 可以)
  11. name:包名
  12. -->
  13. <package name="com.bjpowernode.domain"/>
  14. <package name="...其他包"/>
  15. </typeAliases>

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


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

mappers(映射器)

(1)<mapper resource=" " />

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

例如:

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

(2)<package name=""/>

指定包下的所有 Dao 接口

例如:

<package name="com.bjpowernode.dao"/>
 

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


文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/123693538

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。