Mybatis配置XML文件的层次结构 p37
3.1properties元素<propertiesresource= ”jdbc.properties ”><property name=”” value=””/></properties>
3.2 设置 <settings><setting name=”” value=”” /></settings>
3.3 别名 系统定义别名在TypeAliasRegisTry()中
自定义别名<typeAliases><tyoeAlias alias=”” type=””/></typeAliases>
扫描注解<typeAliases><package name=” “/></typeAliases> @Alias(“”)
3.4 typeHandle类型处理器
MyBatis在预处理语句(PreparedStatement)中设置一个参数时,或者从结果集(ResultSet)中取出一个值时,都会用注册了的typeHandler进行处理.
typeHandle常用的配置为Java类型(javaType)\JDBC类型(jdbcType).typeHandler的作用就是将参数从javatype转化为觉得不错type,或者从数据库取出结果时把jdbcType转化为javatype.
1.系统定义的typeHandler TypeHandlerRegistry()里注册了系统定义的tyoeHandler
2.自定义typeHandler
注册自定义typeHandler. <typeHandlers><typeHandlerjdbcType=”VARCHAR” javaType=”string” handler=” MyStringTypeHandler”/></typeHandlers>
MyStringTypeHandler继承TypeHandler接口 注解配置jdbctype\javatype
@MappedTypes({String.class}) @MappedJdbcTypes(JdbvType.VARCHAR)
3种typeHandler的使用方法
1. 在配置文件里配置,在映射集上定义jdbcType和javaType
2. 在映射集里面直接定义具体的typeHandler
3. 在参数中定义typeHandler.
4. 枚举类型typeHandler
EnumTypeHandler是使用枚举字符串名称作为参数传递的,EnumOrdinalTypeHandler是使用整数下标作为参数传递的.
自定义枚举类的typeHandler
3.5ObjectFactory 当MyBatis在构建一个结果返回的时候,都会使用ObjectFactory(对象工厂)去构建POJO,在Mybatis中可以定制自己的对象工厂.
<objectFactory type=”MyObjectFactory><propertyname=”name” value=”MyObjectFactory”/></objectFactory>
要实现ObejctFactory接口.也可以继承DefaultObjectFactory类.
3.7 environments配置环境 数据库事务 数据源
3.8 databaseProvider数据库厂商标识.
3.9 引入映射器的方法
1.用文件路径<mappers><mapperresource=”com/learn/mapper/roleMapper.xml”/></mappers>
2.用包名<mappers><package name=”com.learn.mapper”/></mappers>
3.用类注册引入<mappers><mapper class=”com.learn.mapper.UserMapper”/></mappers>
4.用userMapper.xml引入.<mappers><mapper url=file:///var/mappers/com/learn/mapper/roleMapper.xml/></mappers>