谷哥的小弟学后台(38)——SqlMapConfig.xml
来源:互联网 发布:软件项目部署方案 编辑:程序博客网 时间:2024/06/11 03:34
探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制
Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南
自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
在之前关于Mybatis的示例中我们采用SqlMapConfig.xml配置数据库连接池和管理mapper.xml,今天我们来继续学习SqlMapConfig.xml常用的其他配置。
SqlMapConfig.xml中配置的内容和顺序如下:
propertiessettingstypeAliasestypeHandlersobjectFactorypluginsenvironments environment transactionManager dataSourcemappers
在此,介绍几个常用的。
properties
我们可将一些配置信息专门写在对应的配置文件中,然后在SqlMapConfig.xml引用即可。比如,将数据库配置信息置于db.properties中:
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mb?characterEncoding=utf-8username=rootpassword=root
然后在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> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="sqlmap/StudentMapper.xml" /> </mappers></configuration>
- 引入db.properties,请参见代码第4行
- 使用db.properties中的内容,请参见代码第9—12行
setting
可在SqlMapConfig.xml中利用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>
关于这些setting的具体作用,请官方文档,在此不再赘述
typeAliases
typeAliases可为Java类型设置一个短的名字从而减少类完全限定名的冗余.
MyBatis已经为许多常见的Java类型内建了相应的类型别名,如下所示:
在mapper.xml中会定义很多的statement,每个statement需要利用parameterType指定输入参数的类型、利用resultType指定输出结果的映射类型。如果在指定类型时输入类型全路径会非常的繁琐,所以我们可利用typeAliases为这些类指定别名,从而提高开发效率
比如,我们可以为单个类指定别名
<typeAliases> <typeAlias type="cn.com.Student" alias="Student" /></typeAliases>
所以在mapper.xml中将parameterType指定为Student即可
<insert id="insertStudent" parameterType="Student"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO student (name,gender,birthday) value (#{name},#{gender},#{birthday}) </insert>
当然,我们还可以为某个包下所有类指定别名。
<typeAliases> <package name="cn.com"/></typeAliases>
这些包下的类名所对应的别名就不再是全路径了,而是java文件本身的名字了。比如cn.com.Student的别名就是Student
typeHandlers
无论是MyBatis在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用typeHandlers类型处理器将获取的值以合适的方式进行转换。简单地说:MyBatis中通过typeHandlers完成JDBC类型和Java类型的转换。Mybatis默认为我们实现了许多TypeHandler, 当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同为我们选择合适的TypeHandler进行数据转换处理。
mappers
mappers用于配置SQL映射文件
第一种方式
<mappers> <mapper resource="sqlmap/StudentMapper.xml" /></mappers>
利用resource加载单个映射文件,我们在MyBatis的入门示例中就是如此配置的。
第二种方式
通过mapper接口(mapper.java)加载单个映射文件(mapper.xml)
<mappers> <mapper class="cn.com.StudentMapper"/></mappers>
利用该方式配置mapper时务必注意:必须将xxxmapper.xml和xxxmaper.java置于同一个包下,且文件名必须一致。
第三种方式
批量配置mapper
<mappers> <package name="cn.com"/></mappers>
配置一个包中的mapper。利用该方式配置mapper时务必注意:必须将xxxmapper.xml和xxxmaper.java置于同一个包下,且文件名必须一致。
- 谷哥的小弟学后台(38)——SqlMapConfig.xml
- 谷哥的小弟学后台(07)——XML和JUnit
- 谷哥的小弟学后台(06)——JDBC
- 谷哥的小弟学后台(08)——Tomcat
- 谷哥的小弟学后台(13)——Cookie
- 谷哥的小弟学后台(14)——HttpSession
- 谷哥的小弟学后台(18)——MVC
- 谷哥的小弟学后台(21)——DBUtils
- 谷哥的小弟学后台(22)——AJAX
- 谷哥的小弟学后台(23)——Listener
- 谷哥的小弟学后台(36)——MyBatis的原始Dao开发方式
- 谷哥的小弟学后台(37)——MyBatis的Mapper开发方式
- 谷哥的小弟学后台(41)——MyBatis的动态SQL
- 谷哥的小弟学后台(01)——MySQL(1)
- 谷哥的小弟学后台(02)——MySQL(2)
- 谷哥的小弟学后台(03)——MySQL(3)
- 谷哥的小弟学后台(04)——MySQL(4)
- 谷哥的小弟学后台(05)——MySQL(5)
- ssh项目搭建
- JAVA中的字符串的indexOf函数 和substring
- Apriori算法
- java中String 类对象在克隆时候的特殊性
- 紫书动规 例题9-12 UVA
- 谷哥的小弟学后台(38)——SqlMapConfig.xml
- leetcode- Sum of Left Leaves
- Java中byte与(16进制)字符串的互相转换
- hibernate缓存机制详细分析 (转)
- 【集训队出题2011】大楼 题解
- 关于jsp乱码问题
- Cloud Computing(5)_Big Data Infrastructure
- 魔兽登陆页面
- kali删除tar.gz形式安装的应用程序后删除applications栏里的icon