mybatis配置文件属性的详解和db.propertis文件的使用
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文件的使用相关推荐
- Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...
- mysql master 配置_MySQL双Master配置的方法详解
刚刚抽空做了一下MYSQL 的主主同步.把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST1.环境描述.主机:192.168.0.231(A)主机:192.168.0.23 ...
- 微服务 分布式配置中心Apollo详解
微服务 分布式配置中心Apollo详解 1. 配置中心概述 1.1 配置中心简介 1.2 配置中心特点 1.3 配置中心对比 2. Apollo概述 2.1 Apollo简介 2.2 Apollo特点 ...
- MyBatis中@MapKey使用详解
MyBatis中@MapKey使用详解 我们在上一篇文章中讲到在Select返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对 ...
- IDEA的安装、配置与使用详解
IDEA的安装.配置与使用详解 目录结构 IDEA的安装.配置与使用详解 一.IDEA介绍 1. Jet Brains公司介绍 2. IDEA介绍 3. IDEA的主要功能介绍 4. IDEA的主要优 ...
- 数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置(图文详解步骤2022)
数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步骤2022) 文章目录 数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步 ...
- MyBatis的缓存机制详解
MyBatis的缓存机制详解 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制,缓存可以极大的提升查询效率.MyBatis中默认定义了两级缓存,分别是一级缓存和二级缓存. ( ...
- 【MyBatis】MyBatis 二级缓存全详解
1.概述 转载:MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存,什么是 SqlSession 级别的缓存呢?一级缓存的本质 ...
- JetBrains DataGrip工具配置数据库过程详解
JetBrains DataGrip工具配置数据库过程详解 DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql.创建表.创建索引以及导出数据等. DataGrip 是 Je ...
最新文章
- sql2000 中 存储过程 相关
- Poj 2503 Babelfish(Map操作)
- 正则匹配承兑的html,正则匹配闭合HTML标签(支持嵌套)
- windows下python 自动截图功能
- OC NSNumber NSValue
- 文件编辑vim常用命令
- 2022年11月份PMP考试是新版教材吗?
- freeswitch如何判断挂机方
- android HID添加(三) ---applist key
- 高等数学(第七版)同济大学 习题2-2 个人解答(后7题)
- js获取时间戳,将时间戳转换为年月日时分秒
- Java里面的同步和异步
- C语言的for循环转verilog,Verilog for 循环语句
- 教你微信小程序商城搭建
- 武松大战蒋门神(35)
- 计算机毕业设计SSM电子病历系统【附源码数据库】
- 计算机应用技术专业英文,计算机应用技术类专业英文简历模板
- frameset的用法
- 苹果6手机怎么录屏_苹果手机如何录屏?开启苹果录屏功能妙招-苹果 ——快科技(驱动之家旗下媒体)-...
- winform数据存储的方式
热门文章
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- Ptrace 一个Linux强大的工具
- 【科普】半监督学习的概述与思考,及其在联邦学习场景下的应用
- EMNLP 2021-多模态Transformer真的多模态了吗?论多模态Transformer对跨模态的影响
- 1.3MB 的超轻YOLO算法!全平台通用,准确率接近YOLOv3,速度快上45%丨开源
- CVPR 2020 论文大盘点-图像增强与图像恢复篇
- 胶囊网络显神威:Google AI和Hinton团队检测到针对图像分类器的对抗攻击
- 神操作!傅里叶变换取代Transformer自注意力层
- 大盘点!CVPR 2020目标检测论文精选
- php狼和兔子算法,PHP基于递归算法解决兔子生兔子问题php技巧