欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis sqlMapConfig.xml中的常用配置 博客分类: Hibernate/MyBatis  

程序员文章站 2024-03-16 16:27:52
...

 

 

 

 

 

 

 

sqlMapConfig.xml是mybatis的核心配置文件,可配置标签有

properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)

 

 

properties

主要是用来抽取jdbc参数的,加载peroperties配置文件,比如把jdbc连接参数放到db.properties中,然后在sqlMapConfig.xml中加载,使用${}获取

<properties resource="db.properties"></properties>

 

settings

mybatis在运行时可以调整一些运行时参数,比如二级缓存,延迟加载

 

typeAliases

针对parameterType、resultType指定的的映射类型制定别名,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 

 自定义单个别名,这种方式一次只能定义一个别名,如果需要定义多个类的别名就需要重复<typeAlias>

<typeAliases>
		<!-- 单个别名定义 -->
		<typeAlias type="entity.User" alias="user" />
</typeAliases>

通过包扫描批量定义别名

	<typeAliases>
		<!-- 批量别名定义,扫描的包,别名就是类名,首字母可大/小写 -->
		<package name="entity" />
	</typeAliases>

 

typeHandlers

mybatis中通过typeHandlers完成jdbc类型和java类型的转换,默认支持的已经够用了

类型处理器	           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

加载映射文件,加载单个映射文件

<mappers>
		<mapper resource="entity/UserMapper.xml" />
</mappers>

 通过mapper接口加载单个配置文件

<mappers>
	<!-- 约定,必须是mapper代理的方式,mapper接口类名和mapper.xml名称一致,且在同一目录中 -->
	<mapper class="dao.IUserMapper"/> 
</mappers>

 通过包扫描加载mapper配置文件

	<mappers>
		<!-- 批量加载mapper指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
		遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
		上边规范的前提是:使用的是mapper代理方法 -->
		<!-- <package name="dao"/> -->
	</mappers>