MyBatis主配置文件(转载)

Posted 张小贱1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis主配置文件(转载)相关的知识,希望对你有一定的参考价值。

原文地址:http://limingnihao.iteye.com/blog/1060764

其中高亮字体是我的理解。

 

在定义sqlSessionFactory时需要指定MyBatis主配置文件:

   

Xml代码  

  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.     <property name="configLocation" value="classpath:mybatis-config.xml" />  
  3.     <property name="dataSource" ref="dataSource" />  
  4. </bean>  

   

 configLocationmybatis-config.xml这个配置其实是可以没有的,如果不配置,那么一切都可以使用默认设置。包括mappers。因为sqlSessionFactory可以配置一个"mapperLocations"属性,用来定义去哪里找mapperxml配置。

   

MyBatis配置文件中大标签configuration下子标签包括:

configuration

|--- properties

|--- settings

|--- typeAliases

|--- typeHandlers

|--- objectFactory

|--- plugins

|--- environments

|--- |--- environment

|--- |--- |--- transactionManager

|--- |--- |__ dataSource

|__ mappers

   

   

   

4.1 properties属性

   

   

    propertiesjava.properties的配置文件有关。配置propertiesresource指定.properties的路径,然后再在properties标签下配置propertynamevalue,则可以替换.properties文件中相应属性值。

   

   

   

Xml代码  

  1.     <!-- 属性替换 -->  
  2. <properties resource="mysql.properties">  
  3.     <property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>  
  4.     <property name="jdbc.url" value="jdbc:mysql://localhost:3306/student_manager"/>  
  5.     <property name="username" value="root"/>  
  6.     <property name="password" value="limingnihao"/>  
  7. </properties>  

   

 properties可以用来配置数据源的,因为在environments 中是可以配置dataSourcetransactionManager的,但是数据源一般都是在sqlSessionFactory中通过dataSource属性指定的一个bean,这两个地方都可以配置datasource,我猜想是,如果使用了spring来管理,可是使用spring来管理dataSourcetransaction,所以可以不配置mybatis-config.xml中的environments。但是如果是采用的非spring,那么就可以在mybatis-config.xml中配置数据源和事务机制了(其实非spring也可以通过java代码自己set,只不过非spring一般不会这么做吧)。

 

4.2 settings设置

   

    这是MyBatis 修改操作运行过程细节的重要的步骤。下方这个表格描述了这些设置项、含义和默认值。

   

   

设置项

描述

允许值

默认值

cacheEnabled

对在此配置文件下的所有cache 进行全局性开/关设置。

true | false

true

lazyLoadingEnabled

全局性设置懒加载。如果设为\'false\',则所有相关联的都会被初始化加载。

true | false

true

aggressiveLazyLoading

当设置为\'true\'的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。

true | false

true

multipleResultSetsEnabled

允许和不允许单条语句返回多个数据集(取决于驱动需求)

true | false

true

useColumnLabel

使用列标签代替列名称。不同的驱动器有不同的作法。参考一下驱动器文档,或者用这两个不同的选项进行测试一下。

true | false

true

useGeneratedKeys

允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。

true | false

false

autoMappingBehavior

指定MyBatis 是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,没有嵌套的结果。FULL 将自动映射所有复杂的结果。

NONE,

PARTIAL,

FULL

PARTIAL

defaultExecutorType

配置和设定执行器,SIMPLE 执行器执行其它语句。REUSE 执行器可能重复使用prepared statements 语句,BATCH执行器可以重复执行语句和批量更新。

SIMPLE

REUSE

BATCH

SIMPLE

defaultStatementTimeout

设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时

正整数

Not Set

(null)

   

   

例如:

   

   

Xml代码  

  1. <settings>  
  2.     <setting name="cacheEnabled" value="true" />  
  3.     <setting name="lazyLoadingEnabled" value="true" />  
  4.     <setting name="multipleResultSetsEnabled" value="true" />  
  5.     <setting name="useColumnLabel" value="true" />  
  6.     <setting name="useGeneratedKeys" value="false" />  
  7.     <setting name="enhancementEnabled" value="false" />  
  8.     <setting name="defaultExecutorType" value="SIMPLE" />  
  9. </settings>  

   

   

   

4.3 typeAliases类型别名

   

   

类型别名是Java 类型的简称。

它仅仅只是关联到XML 配置,简写冗长的JAVA 类名。例如:

   

   

   

Xml代码  

  1. <typeAliases>  
  2.     <typeAlias alias="UserEntity" type="com.manager.data.model.UserEntity" />  
  3.     <typeAlias alias="StudentEntity" type="com.manager.data.model.StudentEntity" />  
  4.     <typeAlias alias="ClassEntity" type="com.manager.data.model.ClassEntity" />  
  5. </typeAliases>  

   

   

   

    使用这个配置,"StudentEntity"就能在任何地方代替"com.manager.data.model.StudentEntity"被使用。

 这是懒人配置会降低程序的可读性。不建议使用。

      对于普通的Java类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载的名字,要注意原生类型的特殊处理。

   

   

别名

映射的类型

_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

object

Object

map

Map

hashmap

HashMap

list

List

arraylist

ArrayList

collection

Collection

iterator

Iterator

   

 别名可以用在mapper xml的parameterType和resultType中。

   

4.4 typeHandlers类型句柄

   

   

无论是MyBatis在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成Java类型。下面这个表格描述了默认的类型处理器。

   

   

   

类型处理器

Java类型

JDBC类型

BooleanTypeHandler

Booleanboolean

任何兼容的布尔值

ByteTypeHandler

Bytebyte

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

ShortTypeHandler

Mybatis学习-Mybatis主配置文件

mybatis-主配置文件

mybatis报Mapper配置文件出错

MyBatis主配置文件

Mybatis理解主配置文件

mybatis 主配置文件各个标签的分析

(c)2006-2024 SYSTEM All Rights Reserved IT常识