Mybatis第三弹
2016-03-13 19:21
260 查看
1 SqlMapConfig.xml配置文件
1.1 配置内容
SqlMapConfig.xml中配置的内容和顺序如下:properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)
1.2 properties(属性)
SqlMapConfig.xml可以引用java属性文件中的配置信息如下:在classpath下定义db.properties文件,
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql
SqlMapConfig.xml引用如下:
<propertiesresource="db.properties"/>
<environments
default="development">
<environment id="development">
<transactionManager
type="JDBC"/>
<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>
注意: MyBatis 将按照下面的顺序来加载属性:
u 在 properties
元素体内定义的属性首先被读取。
u 然后会读取properties元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
u 最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。
1.3 settings(配置)
mybatis全局配置参数,全局参数将会影响mybatis的运行行为。详细参见“学习资料/mybatis-settings.xlsx”文件
1.4 typeAliases(类型别名)
1.4.1 mybatis支持别名:
别名 | 映射的类型 |
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
1.4.2 自定义别名:
在SqlMapConfig.xml中配置:<typeAliases>
<!--
单个别名定义 -->
<typeAlias
alias="user"
type="cn.itcast.mybatis.po.User"/>
<!--
批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
<package
name="cn.itcast.mybatis.po"/>
<package
name="其它包"/>
</typeAliases>
1.5 typeHandlers(类型处理器)
类型处理器用于java类型和jdbc类型映射,如下:<selectid="findUserById"
parameterType="int"
resultType="user">
select * from user where id =#{id}
</select>
mybatis自带的类型处理器基本上满足日常需求,不需要单独定义。
mybatis支持类型处理器:
类型处理器 | Java类型 | JDBC类型 |
BooleanTypeHandler | Boolean,boolean | 任何兼容的布尔值 |
ByteTypeHandler | Byte,byte | 任何兼容的数字或字节类型 |
ShortTypeHandler | Short,short | 任何兼容的数字或短整型 |
IntegerTypeHandler | Integer,int | 任何兼容的数字和整型 |
LongTypeHandler | Long,long | 任何兼容的数字或长整型 |
FloatTypeHandler | Float,float | 任何兼容的数字或单精度浮点型 |
DoubleTypeHandler | Double,double | 任何兼容的数字或双精度浮点型 |
BigDecimalTypeHandler | BigDecimal | 任何兼容的数字或十进制小数类型 |
StringTypeHandler | String | CHAR和VARCHAR类型 |
ClobTypeHandler | String | CLOB和LONGVARCHAR类型 |
NStringTypeHandler | String | NVARCHAR和NCHAR类型 |
NClobTypeHandler | String | NCLOB类型 |
ByteArrayTypeHandler | byte[] | 任何兼容的字节流类型 |
BlobTypeHandler | byte[] | BLOB和LONGVARBINARY类型 |
DateTypeHandler | Date(java.util) | TIMESTAMP类型 |
DateOnlyTypeHandler | Date(java.util) | DATE类型 |
TimeOnlyTypeHandler | Date(java.util) | TIME类型 |
SqlTimestampTypeHandler | Timestamp(java.sql) | TIMESTAMP类型 |
SqlDateTypeHandler | Date(java.sql) | DATE类型 |
SqlTimeTypeHandler | Time(java.sql) | TIME类型 |
ObjectTypeHandler | 任意 | 其他或未指定类型 |
EnumTypeHandler | Enumeration类型 | VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。 |
1.6 mappers(映射器)
Mapper配置的几种方法:1.6.1 <mapper resource=" " />
使用相对于类路径的资源如:<mapper resource="sqlmap/User.xml" />
1.6.2 <mapper url=" " />
使用完全限定路径如:<mapperurl="file:///D:\workspace_spingmvc\mybatis_01\config\sqlmap\User.xml"/>
1.6.3 <mapper class=" " />
使用mapper接口类路径如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
1.6.4 <package name=""/>
注册指定包下的所有mapper接口如:<package name="cn.itcast.mybatis.mapper"/>
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
相关文章推荐
- C语言之二分查找
- TCP四次握手释放连接
- AndroidStudio文件夹结构视图讲解
- Android中的一些基础知识(二)
- Linux内核分析实验三----跟踪分析Linux内核的启动过程
- netty在游戏服务器开发中的应用(一)
- 《leetCode》:Evaluate Reverse Polish Notation
- 腾讯历年笔试题
- replace 全局替换 和 数组去空
- JDBC使用数据库来完成分页功能
- ZOJ-3490-String Successor【8th浙江省赛】【模拟】
- UVA1152 4 Values whose Sum is 0
- java学习之(一) 基本数据及语法
- WDF驱动学习:驱动对象,设备对象(二)
- HTTP 2.0的那些事
- 使用python实现打印所有100以内的所有质数
- 日志结构合并树LSM实现代码解读
- 华为9300 、华三5500 传输网Qinq配置
- iOS YYText的使用笔记二(YYLabel聊天表情+文字并排)
- 1053. Path of Equal Weight (30)