Mybatis核心配置文件SqlMapConfig.xml配置

核心配置文件中标签的顺序如下图所示:

1.properties(属性):

将核心配置文件的某些属性(连接池的四大基本属性),可以在外部的properties核心配置文件中通过表达式引用。

配置步骤:

第一步:定义properties文件,配置属性信息

第二步:核心配置文件中引入外部属性文件

​ 注意:标签顺序,properties处在跟标签configuration下,第一顺位的位子。

第三步:在核心配置文件中使用表达式直接引用属性值(因为properties文件中存放的对象都是以键值对的形式存放),可以通过$符号,从中取出来。

2.settings(设置)(了解)

这是mybatis中极为重要的调整设置,他们会改变mybatis的运行时行为。一般不做操作

一个完整的settings配置如下所示:

<settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="multipleResultSetsEnabled" value="true"/><setting name="useColumnLabel" value="true"/><setting name="useGeneratedKeys" value="false"/><setting name="autoMappingBehavior" value="PARTIAL"/><setting name="autoMappingUnknownColumnBehavior" value="WARNING"/><setting name="defaultExecutorType" value="SIMPLE"/><setting name="defaultStatementTimeout" value="25"/><setting name="defaultFetchSize" value="100"/><setting name="safeRowBoundsEnabled" value="false"/><setting name="mapUnderscoreToCamelCase" value="false"/><setting name="localCacheScope" value="SESSION"/><setting name="jdbcTypeForNull" value="OTHER"/><setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

3.typealiases(别名)

含义:给类名起别名,小名。**(使用简短的单词代替java类型的全限定名:包名+类名)**仅用于 XML 配置,意在降低冗余的全限定类名书写

使用:

typeAliases:别名标签

type:类的全限定名

alias:别名

第二种方式起别名:

代指给当前包下所有的实体类起别名,当前包下类型的别名是类名,忽略大小写。

第三种方式:下面是一些为常见的 Java 类型内建的类型别名。它们都是不区分大小写的,注意,为了应对原始类型的命名重复,采取了特殊的命名风格

4.对象工厂(objectfactory)

每次Mybatis创建结果对象的新实例时,他都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。如果想要覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现。比如:

// ExampleObjectFactory.java
public class ExampleObjectFactory extends DefaultObjectFactory {public Object create(Class type) {return super.create(type);}public Object create(Class type, List<Class> constructorArgTypes, List<Object> constructorArgs) {return super.create(type, constructorArgTypes, constructorArgs);}public void setProperties(Properties properties) {super.setProperties(properties);}public <T> boolean isCollection(Class<T> type) {return Collection.class.isAssignableFrom(type);}}
<!-- mybatis-config.xml -->
<objectFactory type="org.mybatis.example.ExampleObjectFactory"><property name="someProperty" value="100"/>
</objectFactory>

ObjectFactory 接口很简单,它包含两个创建实例用的方法,一个是处理默认无参构造方法的,另外一个是处理带参数的构造方法的。 另外,setProperties 方法可以被用来配置 ObjectFactory,在初始化你的 ObjectFactory 实例后, objectFactory 元素体中定义的属性会被传递给 setProperties 方法。

5.环境配置(environments)

Mybatis可以配置适应多种环境,这种机制有助于将SQL映射应用于多种数据库之中,现实情况也有多种理由这么做。例如:开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使用场景。

不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。

所以,如果你想连接两个数据库,就需要创建两个SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,记起来很简单。

environments元素定义了如何配置环境

<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>

注意:

默认使用的环境ID(比如:default=“development”)

每个environment元素定义的环境ID(比如:id=“development”)

事务管理器的配置(比如:type=“JDBC”)

数据源的配置(比如:type=“POOLED”)

6.映射器(mappers)

1.使用相对于类路径的资源引用:mapper–resource

2.使用完全限定资源定位符(URL)


3.使用映射器接口实现类的完全限定类名

映射器接口实现类的完全限定类名:映射文件中的namespace属性值,接口的全限定名

将映射文件放到接口包下,代替了实现类。

使用Eclipse开发过程中, 通常情况下,映射文件与接口在同一包下,名称相同

4.将包内的映射器接口实现全部注册为映射器

将映射文件放到接口包下,代替了实现类。*

使用Eclipse开发过程中, 通常情况下,映射文件与接口在同一包下,名称相同

mybatis配置文件属性的详解和db.propertis文件的使用相关推荐

  1. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  2. mysql master 配置_MySQL双Master配置的方法详解

    刚刚抽空做了一下MYSQL 的主主同步.把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST1.环境描述.主机:192.168.0.231(A)主机:192.168.0.23 ...

  3. 微服务 分布式配置中心Apollo详解

    微服务 分布式配置中心Apollo详解 1. 配置中心概述 1.1 配置中心简介 1.2 配置中心特点 1.3 配置中心对比 2. Apollo概述 2.1 Apollo简介 2.2 Apollo特点 ...

  4. MyBatis中@MapKey使用详解

    MyBatis中@MapKey使用详解 我们在上一篇文章中讲到在Select返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对 ...

  5. IDEA的安装、配置与使用详解

    IDEA的安装.配置与使用详解 目录结构 IDEA的安装.配置与使用详解 一.IDEA介绍 1. Jet Brains公司介绍 2. IDEA介绍 3. IDEA的主要功能介绍 4. IDEA的主要优 ...

  6. 数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置(图文详解步骤2022)

    数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步骤2022) 文章目录 数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步 ...

  7. MyBatis的缓存机制详解

    MyBatis的缓存机制详解 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制,缓存可以极大的提升查询效率.MyBatis中默认定义了两级缓存,分别是一级缓存和二级缓存. ( ...

  8. 【MyBatis】MyBatis 二级缓存全详解

    1.概述 转载:MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存,什么是 SqlSession 级别的缓存呢?一级缓存的本质 ...

  9. JetBrains DataGrip工具配置数据库过程详解

    JetBrains DataGrip工具配置数据库过程详解 DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql.创建表.创建索引以及导出数据等. DataGrip 是 Je ...

最新文章

  1. sql2000 中 存储过程 相关
  2. Poj 2503 Babelfish(Map操作)
  3. 正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)
  4. windows下python 自动截图功能
  5. OC NSNumber NSValue
  6. 文件编辑vim常用命令
  7. 2022年11月份PMP考试是新版教材吗?
  8. freeswitch如何判断挂机方
  9. android HID添加(三) ---applist key
  10. 高等数学(第七版)同济大学 习题2-2 个人解答(后7题)
  11. js获取时间戳,将时间戳转换为年月日时分秒
  12. Java里面的同步和异步
  13. C语言的for循环转verilog,Verilog for 循环语句
  14. 教你微信小程序商城搭建
  15. 武松大战蒋门神(35)
  16. 计算机毕业设计SSM电子病历系统【附源码数据库】
  17. 计算机应用技术专业英文,计算机应用技术类专业英文简历模板
  18. frameset的用法
  19. 苹果6手机怎么录屏_苹果手机如何录屏?开启苹果录屏功能妙招-苹果 ——快科技(驱动之家旗下媒体)-...
  20. winform数据存储的方式

热门文章

  1. 全局变量、局部变量、静态全局变量、静态局部变量的区别
  2. Ptrace 一个Linux强大的工具
  3. 【科普】半监督学习的概述与思考,及其在联邦学习场景下的应用
  4. EMNLP 2021-多模态Transformer真的多模态了吗?论多模态Transformer对跨模态的影响
  5. 1.3MB 的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源
  6. CVPR 2020 论文大盘点-图像增强与图像恢复篇
  7. 胶囊网络显神威:Google AI和Hinton团队检测到针对图像分类器的对抗攻击
  8. 神操作!傅里叶变换取代Transformer自注意力层
  9. 大盘点!CVPR 2020目标检测论文精选
  10. php狼和兔子算法,PHP基于递归算法解决兔子生兔子问题php技巧