返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis全局配置文件详解
  • 280
分享到

MyBatis全局配置文件详解

2024-04-02 19:04:59 280人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis全局配置文件settings设置typeAliases类型命名存在的问题:@Alias("")environments环境transactionManager事务管

MyBatis全局配置文件

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

顶层结构如下:

  • configuration 配置
  • properties 属性
  • settings 设置
  • typeAliases 类型命名
  • typeHandlers 类型处理器
  • objectFactory 对象工厂
  • plugins 插件
  • environments 环境
  • environment 环境变量
  • transactionManager 事务管理器
  • dataSource 数据源
  • databaseIdProvider 数据库厂商标识
  • mappers 映射器

properties 属性

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

resource:引入类路径下的资源

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


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

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

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。 – 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

settings 设置

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

setting包含很多重要的设置项

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

name:设置项名

value:设置项的取值

mapUnderscoreToCamelCase:驼峰命名 last_name -> lastName


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

typeAliases 类型命名

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

别名不区分大小写

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

typeAlias:为某个java类型起别名

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

alias:指定新的别名

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

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

存在的问题:

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

@Alias("")

public class Employee{}

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

environments 环境

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

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

transactionManager 事务管理器

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

JDBC:JdbcTransactionFactory

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

dataSource 数据源

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

自定义数据源 实现DataSourceFactory接口

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

databaseIdProvider 数据库厂商标识

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

type:数据库类型 DB_VENDOR

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

Mysql oracle SQL Server

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

DB_VENDOR

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

变短

MyBatis匹配规则如下:

  • 如果没有配置databaseIdProvider标签,那么databaseId=null
  • 如果配置了databaseIdProvider标签,使用标签配置的name去匹配数据库信息,匹配上设置databaseId=配置指定的值,否则依旧为null
  • 如果databaseId不为null,他只会找到配置databaseId的sql语句
  • MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库databaseId 属性的所有语句。如果同时找到带有 databaseId 和不带databaseId 的相同语句,则后者会被舍弃。

mappers 映射器

mapper:注册一个sql映射

注册配置文件

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

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

注册接口

class:引应用接口

  • 接口映射文件,映射文件名必须和接口同名,并且放在同一个目录下
  • 没有sql映射文件,所有的sql利用注解写在接口上

注解写在接口上

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

package:批量注册

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抽取出来

--结束END--

本文标题: MyBatis全局配置文件详解

本文链接: https://lsjlt.com/news/130150.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MyBatis全局配置文件详解
    目录MyBatis全局配置文件settings设置typeAliases类型命名存在的问题:@Alias("")environments环境transactionManager事务管...
    99+
    2024-04-02
  • 如何用MyBatis全局配置文件
    这篇文章主要讲解了“如何用MyBatis全局配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用MyBatis全局配置文件”吧!目录MyBatis全局配置文件settings 设置t...
    99+
    2023-06-20
  • 详解Mybatis核心配置文件
    Mybatis核心配置文件 记录在mybatis核心配置文件中,常用的配置选项: 下边是之前的配置选项: <?xml version="1.0" encoding=...
    99+
    2024-04-02
  • Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
    前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下:properties(属性...
    99+
    2023-05-31
    mybatis 配置文件 spring+springmvc+mybatis
  • MyBatis核心配置文件及映射文件详解
    目录什么是SSMMyBatis特性MyBatis和其它持久化技术对比JDBCHibernate和JPAMyBatis创建MyBatis的核心配置文件创建mapper接口创建MyBat...
    99+
    2023-01-13
    MyBatis 核心配置文件映射 MyBatis 核心配置文件 MyBatis 映射文件
  • 关于maven全局配置文件settings.xml解析
    目录settings.xml有什么用?settings.xml文件位置配置优先级settings.xml元素详解顶级元素概览LocalRepositoryInteractiveMod...
    99+
    2024-04-02
  • Mybatis-Plus全局配置无效怎么解决
    这篇“Mybatis-Plus全局配置无效怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mybatis-Plus全局...
    99+
    2023-06-26
  • app.json文件全局配置的方法
    本文小编为大家详细介绍“app.json文件全局配置的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“app.json文件全局配置的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  app.json文件用...
    99+
    2023-06-26
  • 怎么对Mybatis进行全局配置
    这期内容当中小编将会给大家带来有关怎么对Mybatis进行全局配置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架【也就是和数据库打交...
    99+
    2023-05-31
    mybatis
  • Mybatis-Plus全局配置无效的解决方案
    目录全局配置无效Mybatis-plus简单配置及应用mybatis-plus条件构造mybatis generator条件构造全局配置无效 依赖         <depen...
    99+
    2024-04-02
  • Mybatis配置详解
    mybatis 1、mybatis的作用2、封装JDBC3、mybatis基于XML配置4、Mapper代理开发 1、mybatis的作用 再MVC三层模式中mybatis作用于...
    99+
    2023-10-25
    mybatis java spring mysql maven
  • springboot全局配置文件与多环境配置的全过程
    目录1、全局配置文件2、多环境配置附:加载多环境配置总结1、全局配置文件 新建一个springboot项目它的resources目录下有一个application.propertie...
    99+
    2024-04-02
  • MyBatis配置文件解析与MyBatis实例演示
    MyBatis介绍 MyBatis是一个持久层的ORM框架,使用简单,学习成本较低。可以执行自己手写的SQL语句,比较灵活。但是MyBatis的自动化程度不高,移植性也不高,有时从一...
    99+
    2024-04-02
  • 详解MyBatis的Dao层实现和配置文件深入
    目录Mybatis的Dao层实现传统开发方式代理开发方式MyBatis映射文件深入动态sql语句SQL片段抽取MyBatis核心配置文件深入typeHandlers标签plugins...
    99+
    2024-04-02
  • redis配置文件详解
    位置 find / -name redis.conf units单位 # Redis configuration file example. # # Note that in order to read the configu...
    99+
    2022-01-15
    redis配置文件详解
  • package.json文件配置详解
    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块。pack...
    99+
    2022-06-04
    详解 文件 package
  • redis-配置文件详解
    1.基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足两者...
    99+
    2024-04-02
  • redis 配置文件详解
    bind 0.0.0.0                 #绑定redis服务器网卡IP,默认为127.0.0.1,即本地...
    99+
    2024-04-02
  • postgresql.conf配置文件详解
    postgresql.conf文件是PostgreSQL数据库系统的主配置文件,它包含了数据库服务器的各种配置选项。下面是postg...
    99+
    2023-09-13
    详解
  • prometheus 配置文件详解
    目录 prometheus 配置文件详解 简介配置文件 原始配置文件内容global字段alerting 字段 alert_relabel_configsalertmanagersrule_fi...
    99+
    2023-09-05
    prometheus 服务器 linux java 运维
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作