mybatis学习之SqlMapConfig.xml的详细配置内容
来源:互联网 发布:西南证券待遇 知乎 编辑:程序博客网 时间:2024/06/05 19:06
mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理器)
DataSource(数据源)
mappers(映射器)
properties(属性)
SqlMapConfig.xml可以引用java属性文件中的配置信息如下:
在classpath下定义db.properties文件
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=mysql
SqlMapConfig.xml引用如下:
<!-- 加载属性文件 --> <properties resource="db.properties"></properties> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理--> <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 将按照下面的顺序来加载属性:
在 properties 元素体内定义的属性首先被读取。
然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。
建议:
不要再properties元素体内添加任何的属性值,只这个属性值定义在properties文件中
在properties定义的属性名要有一定的特殊性,例如:xxx.xxx.xxxSettings(全局参数设置)
mybatis全局配置参数,全局参数将会影响mybatis的运行行为。
参考资料文件:mybatis-settings.xlsx(github有下)
注意:此设置设置不当会影响mybatis整体的使用,谨慎设置。 mybatis不需要进行数据库连接优化,内置了自动调优。
typeAliases(别名)<重点>
需求:在mapper.xml中,定义了很多sataement。statement需要parameterType来指定输入参数的类型、需要resultType来指定输出结果的映射类型
若果在指定类型时,输入类型的全路径,不方便开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名来定义他们,方便开发
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
自定义别名单个别名的定义:
<!--别名定义--> <typeAliases> <!-- 针对单个别名的定义 type:类型的路径 alias:别名 --> <typeAlias type="pojo.User" alias="user" /> </typeAliases>引用别名:
<select id="findUserById" parameterType="int" resultType="user"> SELECT * FROM USER WHERE id = #{id} </select>
批量别名的定义(更常用):
<!-- 针对批量别名的定义 指定报名:mybatis会自动的扫描包中的pojo类,别名就是类名,首字母大写或小写都可以 --> <package name="pojo"/>
引用别名:
<select id="findUserById" parameterType="int" resultType="user"> SELECT * FROM USER WHERE id = #{id} </select>
或
<select id="findUserById" parameterType="int" resultType="User"> SELECT * FROM USER WHERE id = #{id} </select>都可以
typeHandlers(类型处理器)
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-任何兼容的字符串类型,作为代码存储(而不是索引)。
mappers(映射配置)
<!-- 通过mapper接口来加载映射文件 需要遵循一些规范:需要将mapper接口类名和mapper.xml的文件名称保持一致,且在一个目录 规范的前提:使用mapper代理的方法开发DAO --> <mapper class="mapper.UserMapper" />
<!-- 批量加载mapper 指定mapper接口类的包名 mybatis自动扫描该包目录下所有的mapper接口类 需要遵循一些规范:需要将mapper接口类名和mapper.xml的文件名称保持一致,且在一个目录 使用的前提:使用mapper代理的方法开发DAO --> <package name="mapper" />
- mybatis学习之SqlMapConfig.xml的详细配置内容
- mybatis的SqlMapConfig.xml文件的详细配置
- Mybatis 全局配置文件 SqlMapConfig.xml 的配置内容
- Mybatis笔记之sqlMapConfig.xml配置模板
- mybatis框架之 sqlMapConfig.xml 配置
- mybatis 配置sqlMapConfig.xml
- Mybatis-SqlMapConfig.xml配置
- MyBatis之sqlMapConfig.xml
- 【SSM-MyBatis框架】SqlMapConfig.xml的配置
- MyBatis数据库连接的配置SQLMapConfig.xml文件
- 【SSM-MyBatis框架】SqlMapConfig.xml的配置
- mybatis 配置详解-SqlMapConfig.xml
- SqlMapConfig.xml文件配置 mybatis
- SqlMapConfig.xml配置文件详细配置
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 访客一体机六大鸡肋功能
- Android应用分身功能介绍
- 浏览器中的安全浏览模型
- [第一章]系统、嵌入、硬件
- Error instantiating servlet class 的解决办法
- mybatis学习之SqlMapConfig.xml的详细配置内容
- centos磁盘分区方案详解
- Java基础之ArrayList、LinkedList、Vector比较之代码示例
- TCP协议中的定时器
- PAT甲级 1008
- 15 中断延时
- Developer Network
- POJ 1488 TEX Quotes 笔记
- IP协议(网络层协议)