前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

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.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/mybatisdemo jdbc.username=root jdbc.password=
在SqlMapConfig.xml加载属性文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载数据库文件db.properties -->
<properties resource="db.properties">
<!-- properties中陪可以配置一些属性名和属性值,此处的优先加载 -->
<!-- <property name="driver" value=""/> -->
</properties>
<!-- 和Spring整合后,environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用JDBC事务管理,事务控制由mybatis管理 -->
<transactionManager type="JDBC"/>
<!-- 数据库连接池,由mybatis管理 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
</configuration>
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单个别名定义
<!-- 单个别名定义: --> <typeAliases> <typeAlias type="joanna.yan.mybatis.entity.User" alias="user"/> </typeAliases>
引用别名:
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id=#{id}
</select>
3.3.2批量定义别名(常用)
<!-- 批量别名的定义: package:指定包名,mybatis会自动扫描包中的pojo类,自定义别名,别名就是类名(首字母大写或小写都可以) --> <typeAliases> <package name="joanna.yan.mybatis.entity"/> <!-- <package name="其它包名"/> --> </typeAliases>
4.typeHandlers(类型处理器)
MyBatis中通过typeHandlers完成jbdc类型和java类型的转换。通常情况下,MyBatis提供的类型处理器满足日常需要,不需要自定义。
5.mappers(映射配置)
5.1通过resource加载单个文件
<!-- 加载映射文件 --> <mappers> <!-- 通过resource方法一次加载一个映射文件 --> <mapper resource="mapper/UserMapper.xml"/> </mappers>
5.2通过mapper接口加载单个mapper
<!-- 加载映射文件 --> <mappers> <!-- 通过mapper接口加载单个映射配置文件 遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中; 以上规范的前提是:使用的是mapper代理方法; --> <mapper class="joanna.yan.mybatis.mapper.UserMapper"/> </mappers>
按照上边的规范,将mapper.java和mapper.xml放在一个目录,且同名。
5.3批量加载mapper(推荐使用)
<mappers> <!-- 批量加载映射配置文件,mybatis自动扫描包下的mapper接口进行加载; 遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中; 以上规范的前提是:使用的是mapper代理方法; --> <package name="joanna.yan.mybatis.mapper"/> </mappers>
以上所述是小编给大家介绍的Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# mybatis
# 全局配置文件
# MyBatis全局配置文件详解
# MyBatis 全局配置文件详解
# 加载
# 配置文件
# 自定义
# 的是
# 它会
# 小编
# 有一个
# 体内
# 就会
# 放在
# 将会
# 在此
# 不需要
# 要有
# 目录中
# 只需
# 推荐使用
# 要在
# 给大家
# 要对
相关文章:
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作服务平台,有什么网站可以发布本地服务信息?
如何快速生成ASP一键建站模板并优化安全性?
无锡营销型网站制作公司,无锡网选车牌流程?
如何通过万网虚拟主机快速搭建网站?
如何快速辨别茅台真假?关键步骤解析
如何快速配置高效服务器建站软件?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
广州美橙建站如何快速搭建多端合一网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何获取上海专业网站定制建站电话?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
建站之星如何一键生成手机站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
制作网站外包平台,自动化接单网站有哪些?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何配置IIS站点权限与局域网访问?
盘锦网站制作公司,盘锦大洼有多少5G网站?
怀化网站制作公司,怀化新生儿上户网上办理流程?
如何快速完成中国万网建站详细流程?
常州自助建站费用包含哪些项目?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何获取免费开源的自助建站系统源码?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
郑州企业网站制作公司,郑州招聘网站有哪些?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
制作证书网站有哪些,全国城建培训中心证书查询官网?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
黑客如何利用漏洞与弱口令入侵网站服务器?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
学校为何禁止电信移动建设网站?
高防服务器租用指南:配置选择与快速部署攻略
如何通过网站建站时间优化SEO与用户体验?
如何选购建站域名与空间?自助平台全解析
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
微信推文制作网站有哪些,怎么做微信推文,急?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在建站之星网店版论坛获取技术支持?
如何快速选择适合个人网站的云服务器配置?
如何在IIS7中新建站点?详细步骤解析
建站之星如何助力企业快速打造五合一网站?
简单实现Android文件上传
定制建站是什么?如何实现个性化需求?
*请认真填写需求信息,我们会在24小时内与您取得联系。