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 ...
随机推荐
- 【Angular专题】 (3)装饰器decorator,一块语法糖
目录 一. Decorator装饰器 二. Typescript中的装饰器 2.1 类装饰器 2.2 方法装饰器 2.3 访问器装饰器 2.4 属性装饰器 2.5 参数装饰器 三. 用ES5代码模拟装 ...
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——SliderView控件的使用方式
SliderView控件 一. 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个SliderView控件到窗体界面上 ...
- Linux 桌面双击运行脚本
创建桌面文件 touch myapp.desktop 编辑此文件写入一下内容 [Desktop Entry] Name = myapp Exec = /usr/bin/xxxx/xxx.sh Icon ...
- Linux学习笔记之Python3的安装以及创建虚拟环境(CentOS)
安装python3 一.安装需要编译的关联库 yum instal -y zlib zlib-devel (根据自己系统的情况,安装需要的关联库,同样用yum安装即可) yum install ope ...
- Java开发笔记(一)第一个Java程序
安装完Java的开发环境Eclipse之后,正是初学者大展身手的时候了,接下来不妨跟着笔者一步一步来,看看第一个Java程序是怎么跑起来的.一开始双击桌面上的Eclipse图标,稍等片刻便弹出Ecli ...
- Android开发过程中的坑及解决方法收录(六)
1. file.listFiles 空指针异常 最近在弄个小项目,类似一个文件管理器,需要获得手机存储里的目录之后显示,但是运行过程中出现错误,搜索了资料,得出了以下的解决办法 问题产生的原因: an ...
- 在Office应用中打开WPF窗体并且让子窗体显示在Office应用上
在.NET主程序中,我们可以通过创建 ExcelApplication 对象来打开一个Excel应用程序,如果我们想在Excle里面再打开WPF窗口,问题就不那么简单了. 我们可以简单的实例化一个WP ...
- 使用bfd监控静态路由,达到网络故障及时切换功能。
结论:通过BFD可以联动静态路由,从而监控整个网络上的网络情况,当出现故障时及时进行切换. 下面的例子,就是通过BFD监控上面的这个往返路由,当中间网络出现故障时,两端全部切换到下面的第二条路由进行通 ...
- 企业信息化-Excel快速生成系统
企业信息化,主要是指对企业生产运营过程所形成的信息数字化,最终形成了数字资产.大型企业为了节约成本,提高协同工作效率,都会定制ERP.办公OA.流程审批等系统做信息化支撑.但是中小企业精力投入到生成中 ...
- USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)
,支持一些关键问题: 1 数据初始化问题.该问题是指在linux环境下编程标准c并编译,用户定义的变量默认初始值是0,但在windows 64 win7环境中,变量默认初始值是负值极小.... ...