一、Mybatis配置详解
Mybatis配置详解
XML配置文件层次结构
下图展示了mybatis-config.xml的全部配置元素

properties元素
properties是一个配置属性的元素,让我们能在配置文件的上下文中使用它,MyBatis提供3种配置方式。
property子元素。
<property name="driver" value="com.mysql.jdbc.Driver"/>
properties配置文件。
一般情况下,我们会使用一个单独的properties配置文件来配置属性值,以方便我们在多个配置文件中重复使用它们,也方便日后维护和随时修改。我们可以通过${key}的形式,取出在配置文件中配置的值。
<configuration>
<!-- 引入配置文件 -->
<properties resource="datasource.properties"/> <environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用配置文件中的属性 -->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
</dataSource>
</environment>
</environments>
</configuration>
SqlSessionFactoryBuilder使用Properties文件构建。
出于安全考虑,properties配置文件中的账号密码等元素可能是加密的,这个时候就需要对加密的元素进行处理。
public static void func() throws Exception {
Properties properties = new Properties();
properties.load(Resources.getResourceAsStream("datasource.properties"));
// 对原账号密码解密
properties.setProperty("username", decode(properties.getProperty("username")));
properties.setProperty("password", decode(properties.getProperty("password"))); InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
// SqlSessionFactoryBuilder可以使用一个InputStream和一个Properties构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is, properties);
}
settings设置
settings(设置)在MyBatis中是最复杂的配置,它会改变 MyBatis 运行时的行为。

typeAliases别名
别名(typeAliases)是一个指代的名称。因为我们遇到的类全限定名过长,所以我们希望用一个简短的名称去指代它,而这个名称可以在MyBatis上下文中使用,在 MyBatis中别名是不分大小写的。一个 typeAliases的实例是在解析配置文件时生成的,然后长期保存在 Configuration对象中,这样就没有必要运行的时候再次生成它的实例了。
系统定义的别名
通过org.apache.ibatis.type.TypeAliasRegistry可以查看所有系统定义的别名,主要是基本数据类型、字符串、基本数据类型数组、日期、容器类。
通过XML自定义别名
在mybatis-config.xml中通过
<typeAliases>元素可以自定义别名。<typeAliases>
<typeAlias type="com.zl.domain.UserDomain" alias="user"/>
</typeAliases>
通过注解的方式自定义别名
在mybatis-config.xml中添加package扫描包
<typeAliases>
<package name="com.zl.domain"/>
</typeAliases>
@Alias("user")
public class UserDomain {
}
当配合上面的配置,MyBatis就会自动扫描包,将扫描到的类装载到上下文中。如果配置了包扫描的路径,而没有注解@Alias的类也会被MyBatis装载,MyBatis会自动把类名的第一个字母变为小写,作为MyBatis的别名。
typeHandler类型转换器
typeHandler为类型处理器。MyBatis在预处理语句(PreparedStatement)中设置一个参数或者从结果集(ResultSet)中取出一个值时,都会用注册了的typeHandler进行处理。typeHandler常用的配置为Java类型(javaType)、JDBC类型(jdbcType)。typeHandler的作用就是将参数从javaType转化为 jdbcType,或者从数据库取出结果时把jdbcType转化为javaType。
具体详见:Mybatis类型转换介绍 TypeHandler
objectFactory对象工厂
当MyBatis在构建一个结果返回的时候,都会使用ObjectFactory(对象工厂)去构建POJO,我们可以定制自己的对象工厂。MyBatis中默认的ObjectFactory是由DefaultObjectFactory来提供服务的。
environments环境变量
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
</dataSource>
</environment>
</environments>
- default:表示默认使用哪个数据源
- id:表示数据源的名称
- transactionManager的事务类型type一共有三种:JDBC,采用JDBC方式管理事务,独立编码中我们常常使用;MANAGED,采用容器方式管理事务,在JNDI数据源中常用;自定义,由使用者自定义数据库事务管理办法,适用于特殊应用。
- property元素配置数据源的各类属性
- dataSource的type属性是提供我们对数据厍连接方式的配置:UNPOOLED(非连接池数据库)、POOLED(连接池数据库)、JNDI(JNDI数据源)、自定义数据源。
一、Mybatis配置详解的更多相关文章
- Mybatis配置详解
一.SqlSession的使用范围说明 1.SQLSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory, ...
- spring mvc+myBatis配置详解
一.spring mvc Spring框架(框架即:编程注解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依赖注入),AOP(面向切面),MVC(建模M- ...
- Spring Boot整合Mybatis配置详解
首先,你得有个Spring Boot项目. 平时开发常用的repository包在mybatis里被替换成了mapper. 配置: 1.引入依赖: <dependency> <gro ...
- 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...
- mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)
目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...
- 转载 Spring、Spring MVC、MyBatis整合文件配置详解
Spring.Spring MVC.MyBatis整合文件配置详解 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...
- Spring MVC、MyBatis整合文件配置详解
Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ Building a RESTful Web Serv ...
- Mybatis中接口和对应的mapper文件位置配置详解
Mybatis中接口和对应的mapper文件位置配置详解 原链接为:https://blog.csdn.net/fanfanzk1314/article/details/71480954 今天遇到一个 ...
- 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...
随机推荐
- avd manger创建的虚拟机启动不起来,或者启动起来后黑屏
最近鼓捣安卓虚拟机,整的都差点重装系统,刚开始下载了genymotion_vbox,装完以后要在vbox中导入一个虚拟机,结果我导入完,虚拟机怎么也启动不了,然后各种找办法无果,最后重启电脑发现电脑也 ...
- vue.set( target, key, value ) this.$set(对象获数组,要更改的具体数据,重新赋值)用法
调用方法:Vue.set( target, key, value ) target:要更改的数据源(可以是对象或者数组) key:要更改的具体数据 value :重新赋的值 具体用法js代码: //设 ...
- 【RTOS】为H7配套的uCOS-III模板也是可以用于MDK AC6的,提供个模板
AC6模板 链接:https://pan.baidu.com/s/1_4z_Lg51jMT87RrRM6Qs3g 提取码:2gns 原始的这个模板直接修改为AC6: 编译有几十处警告,修改下面三个 ...
- 1+x 证书 Web 前端开发中级理论考试(试卷 8 )含答案
1+x 证书 Web 前端开发中级理论考试(试卷 8 ) 官方QQ群 转载请注明来源:妙笔生花个人博客http://blog.zh66.club/index.php/archives/438/ 一.单 ...
- 04-Uwsgi配置启动Nginx虚拟主机配置
一.虚拟环境的安装 1.安装虚拟环境 sudo pip3 install virtualenv 2.安装virtualenvwrapper sudo pip3 install virtualenvwr ...
- intelj idea中除了Find Usage外的另一种查找级联调用的方法
一.方法 平时都是使用find usage来找一个方法的引用的地方,但是只能查看一级,今天偶然发现个查看多级的办法: 在源码编辑界面:
- element的表单校验自动定位到该位置
遇到的项目问题是在每个折叠面板里边都有不同的表单,用element上的校验时,若有没填写的表单或不符合表单格式的要求,则自动展开该折叠面板,且页面定位到没校验成功的表单 this.$refs.fo ...
- 查询物料单位PAC成本
select cpp.period_name 期间名称, ccga.organization_id 组织ID, ood.ORGANIZATION_CODE 组织代码, OOD.ORGANIZATION ...
- 【转载】Android Context 到底是什么?
什么是Context? 一个Context意味着一个场景,一个场景就是我们和软件进行交互的一个过程.比如当你使用微信的时候,场景包括聊天界面.通讯录.朋友圈,以及背后的一些数据. 那么从程序的角度来看 ...
- 【分享】nginx负载均衡全套视频教程
1.课件 百度网盘链接:https://pan.baidu.com/s/1On2oONVZmPwI9yIDekgRiA 提取码:c4fw 2.教程列表 3.教程下载 3.1.直接在线学习 ...