注:该文档参考了

一.配置属性(properties)

目标:解耦

  1. 直接在mybatis-config.xml配置
<dataSource type="POOLED">
<property name="driver" value="driver"/>
<property name="url" value="url"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</dataSource>
  1. 通过properties属性配置
<properties resource="db.properties">
<property name="username" value="username"/>
<property name="password" value="password"/>
</properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/dailyClick-test?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/> </dataSource>
</environment>
</environments>
  1. 使用配置文件位置

    (1).在resources目录下建立一个配置文件目录:config.properties
username=username
password=password

(2).在mybatis-config.xml中将config.properties中的内容引入,同时改换占位符

<properties resource="db.properties">
</properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://47.100.90.132:3306/dailyClick-test?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/> </dataSource>
</environment>
</environments>

注:

  • 在xml中,所有的标签都可以规定其顺序
  • #{}多应用于sql语句,也是应用于spring的xml配置和注解配置中统一的SpEL表达式语法结构.${}多应用于配置文件中(如:xml),是属性占位符,配合spring的property-placeholder和.property文件使用,将spring中的配置信息提取到文件中,方便修改,其功能完全可用#{}代替,但${}更简单不易错

加载顺序:

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

二.设置(settings):

这里挑选几个重要的setting

  1. cacheEnabled(true | false):全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。
  2. lazyLoadingEnabled(true | false):懒加载.延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。简单来说,就是什么时候用,什么时候加载
  3. mapUnderscoreToCamelCase(true | false):是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。
  4. logImpl(SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING):指定 MyBatis 所用日志的具体实现,未指定时将自动查找。

配置方式

<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
</settings>

三.类型别名(typeAliases)

类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写.

java的基础数据数据类型和基础类都几乎有别名,如:int->_int(注意这里八大基础类型都有"_"前缀),Map->map

  1. 通过typeAlias属性配置
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
</typeAliases>

注:这里需要定位到相关的Bean类

  1. 通过package属性配置
<typeAliases>
<package name="domain.blog"/>
</typeAliases>

非限定(non-qualified)类名:也叫短名,就是我们平时说的类名,不带包

注:这里默认会使用 Bean 的首字母小写的非限定类名来作为它的别名

3.通过package属性+注解配置

@Alias("author")
public class Author {
...
}

总结:

(1). 当实体类较少时,使用第一种方式,可以起别名

(2). 如果实体类较多,且不用起别名,可以用第二种方式

(3). 如果实体类较多,且需要起别名,可以用第三种方式,但注意随意的加注解会降低程序的可阅读性

四.环境配置(environments)

  1. 环境配置

MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中.每个数据库对应一个 SqlSessionFactory 实例

<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="..." value="..."/>
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>

注:

(1).默认使用的环境 ID,也就是当前实际使用的环境(比如:default="development")

(2).每个 environment 元素定义的环境 ID(比如:id="development")

(3).事务管理器的配置(比如:type="JDBC")

(4).数据源的配置(比如:type="POOLED")

2.事务管理器

这里只需要知道有两个事物管理器即可

type="[JDBC|MANAGED]"

五.映射器

定义SQL映射语句后,告诉 MyBatis 到哪里去找到这些语句

1.使用相对于类路径的资源引用

<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
</mappers>
  1. 使用映射器接口实现类的完全限定类名
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>
  1. 将包内的映射器接口实现全部注册为映射器
<mappers>
<package name="org.mybatis.builder"/>
</mappers>

注意:

(1). 接口和他的Mapper配置文件必须同名

(2). 接口和他的Mapper配置文件必须在同一个包下

推荐第一种方式

Mybatis——xml配置的更多相关文章

  1. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  2. 笔记:MyBatis XML配置详解

    MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 properties ...

  3. Mybatis XML配置(转载)

    原文地址:https://www.w3cschool.cn/mybatis/f4uw1ilx.html Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它 ...

  4. MyBatis XML配置properties

    来源:https://www.w3cschool.cn/mybatis/7zy61ilv.html XML 映射配置文件 MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(sett ...

  5. 02、MyBatis XML配置

    MyBatis-全局配置文件 在MyBatis中全局配置文件有着重要的地位,里面有9类行为信息;如果我们要想将MyBatis运用的熟练,配置全局配置文件是必不可少的步骤,所以我们一定要啃下这一块硬骨头 ...

  6. 笔记:MyBatis XML配置-Settings 完整属性表

    设置参数 描述 有效值 默认值 cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关. true | false true lazyLoadingEnabled 延迟加载的全局开关. ...

  7. 笔记:MyBatis XML配置-typeAliases 内建别名表

    别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _float float _boole ...

  8. 笔记:MyBatis XML配置-typeHandlers 默认类型处理器

    类型处理器 Java 类型 JDBC 类型 BooleanTypeHandler java.lang.Boolean, boolean 数据库兼容的 BOOLEAN ByteTypeHandler j ...

  9. 聊聊、Mybatis XML

    引入相应的依赖包 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis-sprin ...

随机推荐

  1. 还在做廉价的劳动力?部署PXE实现Kickstart无人值守安装

    搭建PXE实现Kickstart无人值守安装 1.搭建PXE远程安装服务器 2.实现kicstart无人值守安装 1.PXE介绍及搭载: PXE是有Intel公司开发的网络引导技术,工作在Client ...

  2. [01-jwt]C# JWT基础知识详解

    本篇文章将介绍jwt基础概念性知识,不含实操代码展示,特别适合该方面知识空白的人群,大神级别请选择性观看.不喜禁喷,出门右转,谢谢配合. 一.什么是JWT? JWT是简写,全称是JSON Web To ...

  3. 国外很便宜的服务器 一年 2核2G 一年20美元

    今年 服务器 //=====================================一下是去年的================================= 优惠码:zhujicepin ...

  4. 02网络编程( socket套接字+TCP粘包 )

    目录 02 网络编程 一.socket套接字编程 二.简易代码模板 2.1 服务端 2.2 客户端 三.通信循环及代码优化 四.黏包现象 五.struct模块 六.简易版本报头 七.上传文件数据 * ...

  5. 02 HTML标签

    2. HTML标签 1. HTML简介 用户使用浏览器打开网页看到结果的过程就是:浏览器将服务端的文本文件(即网页文件)内容下载到本地,然后打开显示的过程. 而文本文件的文档结构只有空格和黄航两种组织 ...

  6. 基于C6678+XC7V690T的6U VPX信号处理卡

    一.概述 本板卡基于标准6U VPX 架构,为通用高性能信号处理平台,系我公司自主研发.板卡采用一片TI DSP TMS320C6678和一片Xilinx公司Virtex 7系列的FPGA XC7V6 ...

  7. yum 搭建私有仓库

    今日内容 Linux 中安装软件的三种方法 yum 私有仓库 selinux 和 firewalld (iprables) 解决系统乱码 内容详细 一.Linux 安装软件的三种方法 rpm安装.yu ...

  8. suse 12 二进制部署 Kubernetets 1.19.7 - 第11章 - 部署coredns组件

    文章目录 1.11.0.部署coredns 1.11.1.测试coredns功能 suse 12 二进制部署 Kubernetes 集群系列合集: suse 12 二进制部署 Kubernetets ...

  9. 『无为则无心』Python面向对象 — 52、私有成员方法(类中行为的封装)

    Python对于类的成员没有严格的访问控制限制,这与其他面向对象的编程语言是有所区别的. 关于私有方法其实和私有属性差不多,有如下要点: 1.通常我们约定,两个下划线开头的方法是私有方法. 2.类内部 ...

  10. [LeetCode]剑指 Offer 17. 打印从1到最大的n位数

    输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数 999. 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7, ...