博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
阅读量:6346 次
发布时间:2019-06-22

本文共 2274 字,大约阅读时间需要 7 分钟。

MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下:

properties(属性)

setting(全局配置参数)

typeAliases(类名别名)

typeHandlers(类名处理器)

objectFactory(对象工厂)

plugins(插件)

environments(环境集合属性对象)

  environment(环境子属性对象)

  transationManager(事务管理)

  dataSource(数据源)

mappers(映射器)

1.properties(属性)

需求:

将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。

将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。

在classpath下定义db.properties文件:

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc\:mysql\://localhost\:3306/mybatisdemojdbc.username=rootjdbc.password=

在SqlMapConfig.xml加载属性文件:

properties特性:

注意:MyBatis将按照下面的顺序来加载属性:

(1)在properties元素体内定义的属性首先被读取。

(2)然后会读取properties元素中resourse或url加载的属性,它会覆盖已读取的同名属性。

(3)最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

所以这里可能就会存在一个问题:假如UserMapper.xml中的有一个statement的入参名为name,

而db.properties中也有一个参数名叫name。

那最终UserMapper.xml中的select会读取到name=root,而不是用户传入的值。

建议:

不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

在properties文件中定义属性名要有一定的特殊性,如:xxx.xxx.xxx,jdbc.url,jbdc.username。

2.settings(全局参数配置)

MyBatis框架在运行时可以调整一些运行参数。

比如:开启二级缓存、开启延迟加载......

全局参数将会影响MyBatis的运行行为。

3.typeAliases(别名)重点

3.1需求

在mapper.xml中,定义很多的statement,而statement需要parameterType指定输入参数的类型,需要resultType指定输出结果的映射类型。

如果在指定类型时输入类型全路径,不方便进行开发。可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

3.2mybatis默认支持别名

3.3自定义别名

3.3.1单个别名定义

引用别名:

3.3.2批量定义别名(常用)

4.typeHandlers(类型处理器)

MyBatis中通过typeHandlers完成jbdc类型和java类型的转换。通常情况下,MyBatis提供的类型处理器满足日常需要,不需要自定义。

5.mappers(映射配置)

5.1通过resource加载单个文件

  

5.2通过mapper接口加载单个mapper

按照上边的规范,将mapper.java和mapper.xml放在一个目录,且同名。

5.3批量加载mapper(推荐使用)

转载于:https://www.cnblogs.com/wangyage/p/7198914.html

你可能感兴趣的文章
面试题13:在O(1)时间删除链表节点
查看>>
第五十六课、函数模板的概念和意义
查看>>
Windows进程创建的流程分析
查看>>
css重直居中代码
查看>>
Struts 2 ModelDriven Action
查看>>
destoon公司搜索页面显示公司类型
查看>>
C++分享笔记:5X5单词字谜游戏设计
查看>>
单片机软件proteus的汉化步骤
查看>>
webqq协议分析之~~~~登陆
查看>>
构建之法阅读笔记6
查看>>
c# 免费版pdf转word尝试
查看>>
iOS学习笔记12-UISearchBar
查看>>
用代码实现以下程序:篮子中有10个玩具,每60秒取出3个,同时每40秒向篮子中放入1个,不断重复上述动作,当篮子中剩余玩具不足3个是,程序结束...
查看>>
使用JDBC-ODBC读取Excel文件
查看>>
(一)在HTML页面中实现一个简单的Tab
查看>>
jinian
查看>>
SQL Serever学习5——数据库配置
查看>>
codevs——3344 迷宫
查看>>
Google Map API使用详解(五)——Google Map基本常识(下)
查看>>
实验1-8 输出倒三角图案
查看>>