mybatis 配置文件全解
目录
properties
mybatis配置文件中,可以像代码一样定义变量,然后在配置文件的其他地方使用,比如数据库连接的相关配置:
<configuration>
<properties>
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${username}"></property>
<property name="password" value="${password}"></property>
</dataSource>
</environment>
</environments>
</configuration>
当然,也可以使用properties标签加载外部配置文件,比如,创建src/conf/db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root
在mybatis中引入外部配置文件:
<configuration>
<properties resource="conf/db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${username}"></property>
<property name="password" value="${password}"></property>
</dataSource>
</environment>
</environments>
</configuration>
注意,加载外部配置文件的同时,也可以在在内部配置与配置文件中相同的属性,此时会覆盖外部配置文件的属性值。
settings
settings标签可以用设置很多配置项,但是最常用的就是配置日志管理:
<settings>
<setting name="logImpl" value="log4J"/>
</settings>
其他的setting配置,可以参考mybatis官网给出的示例:
<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="defaultExecutorType" value="SIMPLE" />
<setting name="defaultStatementTimeout" value="25" />
<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>
配置项虽然很多,但都见名知意。
typeAliases
我们在创建mapper映射文件的时候,对于parameterType和resultType而言,如果是自定义的实体类,那么就需要写全路径,比如像下面这样:
cn.ganlixin.mapper.PersonMapper.xml
<mapper namespace="cn.ganlixin.mapper.PersonMapper">
<select id="selectOnePerson"
parameterType="cn.ganlxin.pojo.Person"
resultType="cn.ganlixin.pojo.Person">
select * from person where id=#{id}
</select>
</mapper>
上面parameterType和resultType写全路径其实是很不方便的,此时可以在mybatis配置文件中使用typeAliases来配置别名:
<typeAliases>
<typeAlias type="cn.ganlixin.pojo.Person" alias="person"/>
</typeAliases>
之后cn.ganlixin.mapper.PersonMapper.xml中就可以这样写了:
<mapper namespace="cn.ganlixin.mapper.PersonMapper">
<select id="selectOnePerson" parameterType="person" resultType="person">
select * from person where id=#{id}
</select>
</mapper>
上面只是为cn.ganlixin.pojo.Person配置了别名,如果实体类很多,那么单独为每一个实体类配置别名,工作量就有点大了,此时可以为一个包下面的所有实体类配置别名,比如这里为cn.ganlixin.pojo包下的所有实体类都配置别名,别名就是单独的类名:
<typeAliases>
<package name="cn.ganlixin.pojo"/>
</typeAliases>
mappers
mappers的功能就是指定哪些位置的xml会被mybatis解析。
可以有三种方式使用mappers:
1、使用resource属性,每次指定一个mapper映射文件:
<mappers>
<mapper resource="cn/ganlixin/mapper/PersonMapper.xml"></mapper>
<mapper resource="cn/ganlixin/mapper/StudentMapper.xml"></mapper>
</mappers>
2、使用url属性,每次也是指定一个mapper映射文件:
<mappers>
<!-- windows中 -->
<mapper url="file:///E:/mapper/PersonMapper.xml"/> <!-- linux中 -->
<mapper url="file:///usr/mapper/PersonMapper.xml" />
</mappers>
3、使用接口绑定式,可以用class属性,一次指定一个interface文件:
<mappers>
<mapper class="cn.ganlxin.mapper.PersonMapper" />
</mappers>
4、使用接口绑定时,可以用package属性,一次性指定一个包下面的所有interface文件:
<mappers>
<package name="cn.ganlixin.mapper"/>
</mappers>
mybatis 配置文件全解的更多相关文章
- Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...
- ORM框架对比以及Mybatis配置文件详解
ORM框架对比以及Mybatis配置文件详解 0.数据库操作框架的历程 (1) JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句 ...
- Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!
封面:洛小汐 作者:潘潘 2021年,仰望天空,脚踏实地. 这算是春节后首篇 Mybatis 文了~ 跨了个年感觉写了有半个世纪 ... 借着女神节 ヾ(◍°∇°◍)ノ゙ 提前祝男神女神们越靓越富越嗨 ...
- Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式
封面:洛小汐 作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水.名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里问心无愧 感兴趣的 ...
- Mybatis系列全解(六):Mybatis最硬核的API你知道几个?
封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...
- Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...
- Mybatis系列全解(三):Mybatis简单CRUD使用介绍
封面:洛小汐 作者:潘潘 在理解中执行,在执行中理解,学习技术也循此道. 前言 上一篇文章 <Mybatis系列全解(二):Mybatis简介与环境搭建> ,我们对 Mybatis 做了初 ...
- Mybatis系列全解(二):Mybatis简介与环境搭建
封面:洛小汐 作者:潘潘 Mybatis 是一套持久层框架,灵活易用,特别流行. 前言 Mybatis系列全解,我们预计准备10+篇文章,让我们了解到 Mybatis 的基本全貌,真正从入门到上手,从 ...
- 02.MyBatis配置文件详解
MyBatis入参考文档:http://mybatis.org/mybatis-3/zh/ 1.properties 属性 1.在MyBatis配置文件中引用属性文件 MyBatis ...
随机推荐
- SmoOne——开源免费的企业移动OA应用,基于.Net
一.SmoOne是什么一个开源的移动OA应用 二.语言C# 三.开发环境Visual Studio 四.开发平台Smobiler Designer 五.功能该应用开源代码中包含注册.登录.用户信息等基 ...
- 第62章 EntityFramework支持 - Identity Server 4 中文文档(v1.0.0)
为IdentityServer中的配置和操作数据扩展点提供了基于EntityFramework的实现.EntityFramework的使用允许任何EF支持的数据库与此库一起使用. 这个库的仓库位于这里 ...
- linux 内核的优化
修改下面的这些参数,如果没有的话.直接复制进去就可以了 vim /etc/sysctl.conf 参数修改 vm.swappiness = net.ipv4.neigh. net.ipv4.conf. ...
- 我的第三个开源库GuaJiangViewDemo——中文文档
GuaJiangViewDemo 欢迎Star 一个可以简单的刮刮奖View的封装 测试图 使用 1.在根目录上添加 maven { url 'https://jitpack.io' } 2.添加依赖 ...
- 前端导出excel数据-jsonToExcel
咳咳,好久没有写博了... 在工作中遇到了纯前端,将数据导出为excel文件.正文开始: 第一步 安装依赖: npm i xlsx 第二步 写导出函数: import XLSX from 'xlsx' ...
- nginx在代理转发地图瓦片数据中的应用
最近有这样一个需求,需要将arcgis server发布的地图瓦片放在移动硬盘中,系统演示的时候,直接调用本地的地图瓦片,而非远程的,主要是为了系统演示的时候加快地图访问速度. 而且需要在任意电脑运行 ...
- 人脸识别Android SDK集成
目前我们的应用内使用了ArcFace 的人脸检测功能,这里就和大家分享一下我们的集成过程和一些使用心得~ 集成ArcFace FD 的集成过程非常简单在 ArcFace FD 的文档上有说明支持的系统 ...
- Android开发,关于如何在应用间共享SharedPreference
开发一个应用,需要用到两个应用A和B之间共享数据的问题,这个数据是个单一的数据,所以就想用SharedPrefernce来进行保存. 使用网上的各种应用间的共享代码,B是读取A的数据,所以代码为: C ...
- Android 性能优化之减少UI过度绘制
什么是过度绘制(OverDraw) 在多层次重叠的UI结构里面,如果不可见的UI也在做绘制的操作,会导致某些像素区域被绘制了多次.这样就会浪费大量的CPU以及GPU资源.过度绘制最直观的影响就是会导致 ...
- Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块
Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块 目录 Pycharm使用技巧( ...