Mybatis应用学习(2)——配置文件编写

1. Mybatis的配置文件SqlMapConfig.xml

1.1 主要标签

  • properties(定义属性):用来定义一些固定属性值,以key-value形式存在
    •  MyBatis 将按照下面的顺序来加载属性:在 properties 元素体内定义的属性首先被读取;然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性;最后读取parameterType传递的属性,它会覆盖已读取的同名属性。建议不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中,而且在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

    • 其应用如下:将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。

      在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。将数据库连接参数只配置在db.properties中,原因是方便对参数进行统一管理,其它xml可以引用该db.properties。

      9040bc1aa601c92b20f1ffdb2422e6bf429.jpg

      在sqlMapConfig.xml加载属性文件:

      95c3215597ecdc1a348215c3f69d4ae1657.jpg

    •  

      子标签<property name="" value=""/>:定义添加属性值

       

       

  • settings(全局配置参数):mybatis框架在运行时通过该标签可以调整一些运行参数,比如开启二级缓存,全局参数将会影响mybatis的运行行为。
    • 参数配置子标签为<setting name="" value=""/>,name的值和value的值如下:

14e03e6c6fa9d8c92cb8d601aaf78f0d740.jpg

091646e3083e6318be92685a2abff1e3050.jpg

d9b6de6bf5ab66622da851a46566a5ca1f1.jpg

示例使用

<?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>
	<property name="" value=""/>
	<settings>
<!--开启延迟加载-->
		<setting name="lazyLoadingEnabled" value="true"/>
		<setting name="aggressiveLazyLoading" value="false"/>
	</settings>
</configuration> 

 

  • typeAliases(类型别名):用来给指定的类取别名,在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。
    • 默认支持的类型与别名:不需要专门配置,直接应用即可

      别名

      映射的类型

      _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

    • 针对自定义的pojo类型需要配置别名:所使用的标签主要如下
      	<typeAliases>
      		<!-- 针对单个类的别名配置:type写类的全限定路径,alias写别名-->
      		<typeAlias type="" alias=""/>
      		<!-- 批量别名配置:name写包的全限定路径,mybatis会自动生成别名,别名为包下每个类的类名-->
      		<package name=""/>
      	</typeAliases>

       

  • typeHandlers(类型处理器):Mybatis通过类型处理器来完成在数据库数据类型和java类型之间的转换,比如从数据库中的varchar转为java中的String类型,通常情况下Mybatis中默认支持的类型处理器可以满足开发需求,所以一般不需要自定义类型处理器
    • 类型处理器

      Java类型

      JDBC类型

      BooleanTypeHandler

      Booleanboolean

      任何兼容的布尔值

      ByteTypeHandler

      Bytebyte

      任何兼容的数字或字节类型

      ShortTypeHandler

      Shortshort

      任何兼容的数字或短整型

      IntegerTypeHandler

      Integerint

      任何兼容的数字和整型

      LongTypeHandler

      Longlong

      任何兼容的数字或长整型

      FloatTypeHandler

      Floatfloat

      任何兼容的数字或单精度浮点型

      DoubleTypeHandler

      Doubledouble

      任何兼容的数字或双精度浮点型

      BigDecimalTypeHandler

      BigDecimal

      任何兼容的数字或十进制小数类型

      StringTypeHandler

      String

      CHARVARCHAR类型

      ClobTypeHandler

      String

      CLOBLONGVARCHAR类型

      NStringTypeHandler

      String

      NVARCHARNCHAR类型

      NClobTypeHandler

      String

      NCLOB类型

      ByteArrayTypeHandler

      byte[]

      任何兼容的字节流类型

      BlobTypeHandler

      byte[]

      BLOBLONGVARBINARY类型

      DateTypeHandler

      Datejava.util

      TIMESTAMP类型

      DateOnlyTypeHandler

      Datejava.util

      DATE类型

      TimeOnlyTypeHandler

      Datejava.util

      TIME类型

      SqlTimestampTypeHandler

      Timestampjava.sql

      TIMESTAMP类型

      SqlDateTypeHandler

      Datejava.sql

      DATE类型

      SqlTimeTypeHandler

      Timejava.sql

      TIME类型

      ObjectTypeHandler

      任意

      其他或未指定类型

      EnumTypeHandler

      Enumeration类型

      VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。

  • objectFactory(对象工厂)
  • plugins(插件):添加一些插件,比如分页插件
  • environments(环境集合属性对象)
    • environment(环境子属性对象)
    • transactionManager(事务管理)
    • dataSource(数据源)
  • mappers(映射器):该标签用于加载映射文件,子标签只有<mapper/>
    • 通过子标签<mapper/>中的resource属性指定加载单个映射文件:注意,路径填写是在类路径(也就是classpath),写相对路径
      	<mappers>
      		<mapper resource="mapper/UserMapper.xml"/>
      	</mappers>

       

    • 通过子标签<mapper/>中的class属性指定加载单个映射文件:注意,该方法只针对Mybatis通过Mapper接口代理开发有效,所以要满足Mapper代理开发的规范,路径填写Mapper接口的全限定路径,并且要将UserMapper接口对应的UserMapper.xml映射文件放在同一个包下,而且xml文件名和mapper接口名相同
      	<mappers>
      		<mapper class="dao.UserMapper"/>
      	</mappers>

       

    • 通过子标签<package/>中的name属性指定加载批量映射文件:注意,该方法只针对Mybatis通过Mapper接口代理开发有效,所以要满足Mapper代理开发的规范,并且要将Mapper接口对应的Mapper.xml映射文件放在同一个包下,而且xml文件名和mapper接口名相同,路径填写所在的包的全限定路径
      	<mappers>
      <!--替换
          <mapper resource="mapper.Usermapper"/>
      	<mapper resource="mapper.NoteBookMapper"/>
      -->
      		<package name="mapper"/>
      	</mappers>

       

转载于:https://my.oschina.net/ProgramerLife/blog/2960620

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值