如何用MyBatis全局配置文件

发布时间:2021-07-09 13:38:17 作者:chen
来源:亿速云 阅读:153

这篇文章主要讲解了“如何用MyBatis全局配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用MyBatis全局配置文件”吧!

目录

MyBatis全局配置文件

MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。文档的

顶层结构如下:

properties 属性

mybatis 可以使用properties来引入外部properties配置文件的内容

resource:引入类路径下的资源

url:引入网络路径或者磁盘路径下的资源

<properties resource="dbconfig.properties"></properties>

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:

settings 设置

这是 MyBatis 中极为重要的调整设置,它们会改变MyBatis 的运行时行为。

setting包含很多重要的设置项

setting:用来设置每一个设置项

name:设置项名

value:设置项的取值

mapUnderscoreToCamelCase:驼峰命名 last_name -> lastName

<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

如何用MyBatis全局配置文件

typeAliases 类型命名

typeAliases:可以批量设置别名这个包下的每一个类

别名不区分大小写

创建一个默认的别名,就是简单类名小写

typeAlias:为某个java类型起别名

type:指定要起别名的类型全类名;默认别名就是类名小写:employee

alias:指定新的别名

如何用MyBatis全局配置文件

package:为某个包下的所有类批量起别名

name:指定包名(为当前包下以及下面所有的后代包的每一个类都起一个默认的别名(类名小写))

如何用MyBatis全局配置文件

存在的问题:

假设bean包下有一个类Employee,同时在bean包下有一个子包也有一个类叫Employee,此时这两个包的类名就会冲突,因此还可以使用注解的放上为类创建别名

@Alias("")

public class Employee{}

如何用MyBatis全局配置文件

值得注意的是,MyBatis已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,我们在起别名的时候千万不要占用已有的别名。

如何用MyBatis全局配置文件

environments 环境

mybatis可以配置多种环境 default指定使用某种环境,可以达到快速切换

environments:配置一个具体的环境信息;必须有两个标签,id代表当前环境的唯一标识

transactionManager 事务管理器

type:事务管理器的类型 [JDBC(使用了 JDBC 的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。)|MANAGED(不提交或回滚一个连接、让容器来管理事务的整个生命周期(比如 JEE应用服务器的上下文))]

JDBC:JdbcTransactionFactory

自定义事务管理器 实现TransactionFactory接口即可

dataSource 数据源

type:数据源的类型 [UNPOOLED(不使用连接池)|POOLED(使用连接池)|JNDI(在EJB 或应用服务器这类容器中查找指定的数据源)]

自定义数据源 实现DataSourceFactory接口

实际开发中我们使用Spring管理数据源,并进行事务控制的配置来覆盖上述配置

如何用MyBatis全局配置文件

databaseIdProvider 数据库厂商标识

databaseIdProvider: 可以根据不同的数据库厂商执行不同的语句。

type:数据库类型 DB_VENDOR

作用就是得到数据库厂商标识(驱动自带的),mybatis就能根据数据库厂商标识来执行不同的sql

MYSQL Oracle SQL Server

value:为标识起一个别名,方便SQL语句使用databaseId属性引用

如何用MyBatis全局配置文件

如何用MyBatis全局配置文件

DB_VENDOR

会通过 DatabaseMetaData#getDatabaseProductName() 返回的字符串进行设置。由于通常情况下这个字符串都非常长而且相同产品的不同版本会返回不同的值,所以最好通过设置属性别名来使其

变短

MyBatis匹配规则如下:

mappers 映射器

mapper:注册一个sql映射

注册配置文件

resource:引用类路径下的sql映射文件

url:用网路路径下的或者磁盘路径下的sql映射文件

注册接口

class:引应用接口

注解写在接口上

推荐:比较重要和复杂额Dao接口写sql映射文件,不重要的简单的为了开发快速可以使用注解

如何用MyBatis全局配置文件

package:批量注册

如何用MyBatis全局配置文件

sql映射文件

namespace:名称空间;指定为接口的全类名

id:唯一标识

resultType:返回值类型

#{id}:从传递过来的参数中取出id值

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="school.xauat.mybatis.dao.EmployeeMapper">
    <select id="getEmpById" resultType="employee" >
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="employee" databaseId="mysql">
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="employee" databaseId="oracle">
        select * from tbl_employee where id = #{id}
    </select>
</mapper>

总结

1、接口是编程

原生: Dao -----> DaoImpl

Mybatis: Mapper -----> xxMapper.xml

2、SqlSession代表和数据库的一次会话,用完必须关闭

3、SqlSession和connection一样,都是非线程安全的。每次使用都应该获取新的对象

4、mapper接口没有实现类,但是Mybatis会为这个接口生成一个代理对象(将接口和xml进行绑定)

EmployeeMapper empMapper = SqlSession.getMapper(Employee.class);

5、两个重要的配置文件

mybatis的全局配置文件;包含数据库连接池信息,事务管理器信息,系统运行信息

sql映射文件:保存了每一个SQL语句的映射信息

将sql抽取出来

感谢各位的阅读,以上就是“如何用MyBatis全局配置文件”的内容了,经过本文的学习后,相信大家对如何用MyBatis全局配置文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. MyBatis Generator的配置文件介绍
  2. 怎么对MyBatis配置文件进行配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatis

上一篇:Java如何通过动态代理实现一个简单的拦截器操作

下一篇:如何解决springboot整合cxf-jaxrs中json转换的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》