Mybatis之全局配置文件

一、全局配置文件

config.xml :配置内容和顺序如下(顺序不能乱):dtd约束规定

Properties(属性)属性配置文件

Settings(全局参数设置)懒加载二级缓存

typeAliases(类型别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)分页插件

environments(环境信息集合)

         environment(单个环境信息)

                   transactionManager(事物)

                   dataSource(数据源)

mappers(映射器)

1 、1 常用配置

Properties

配置文件的加载顺序

  1. 先加载properties中property标签声明的属性
  2. 再加载properties标签引入的java配置文件(properties配置文件)中的属性
  3. parameterType的值会和properties的属性值发生冲突。(比如实体类的字段和)
<properties resource="dbinfo.properties">
		<!--加载一个配置文件 <property name="driver" value="com.mysql.jdbc.Driver"/> -->
	</properties>

settings

mybatis全局配置参数,全局参数将会影响mybatis的运行行为。

Setting(设置)Description(描述)Valid Values(验证值组)
cacheEnabled在全局范围内启用或禁用缓存配置任何映射器在此配置下。true | false
lazyLoadingEnabled在全局范围内启用或禁用延迟加载。禁用时,所有协会将热加载。true | false
aggressiveLazyLoading启用时,有延迟加载属性的对象将被完全加载后调用懒惰的任何属性。否则,每一个属性是按需加载。true | false
multipleResultSetsEnabled允许或不允许从一个单独的语句(需要兼容的驱动程序)要返回多个结果集。true | false
useColumnLabel使用列标签,而不是列名。在这方面,不同的驱动有不同的行为。参考驱动文档或测试两种方法来决定你的驱动程序的行为如何。true | false
useGeneratedKeys允许JDBC支持生成的密钥。兼容的驱动程序是必需的。此设置强制生成的键被使用,如果设置为true,一些驱动会不兼容性,但仍然可以工作。true | false
autoMappingBehavior指定MyBatis的应如何自动映射列到字段/属性。NONE自动映射。 PARTIAL只会自动映射结果没有嵌套结果映射定义里面。 FULL会自动映射的结果映射任何复杂的(包含嵌套或其他)。NONE, PARTIAL, FULL
defaultExecutorType配置默认执行人。SIMPLE执行人确实没有什么特别的。 REUSE执行器重用准备好的语句。 BATCH执行器重用语句和批处理更新。SIMPLE REUSE BATCH
defaultStatementTimeout设置驱动程序等待一个数据库响应的秒数。Any positive integer
safeRowBoundsEnabled允许使用嵌套的语句RowBoundstrue | false
mapUnderscoreToCamelCase从经典的数据库列名A_COLUMN启用自动映射到骆驼标识的经典的Java属性名aColumntrue | false
localCacheScopeMyBatis的使用本地缓存,以防止循环引用,并加快反复嵌套查询。默认情况下(SESSION)会话期间执行的所有查询缓存。如果localCacheScope=STATMENT本地会话将被用于语句的执行,只是没有将数据共享之间的两个不同的调用相同的SqlSessionSESSION | STATEMENT
dbcTypeForNull指定为空值时,没有特定的JDBC类型的参数的JDBC类型。有些驱动需要指定列的JDBC类型,但其他像NULLVARCHAROTHER的工作与通用值。JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER
lazyLoadTriggerMethods指定触发延迟加载的对象的方法。A method name list separated by commas
defaultScriptingLanguage指定所使用的语言默认为动态SQL生成。A type alias or fully qualified class name.
callSettersOnNulls指定如果setter方法​​或地图的put方法时,将调用检索到的值是null。它是有用的,当你依靠Map.keySet()或null初始化。注意原语(如整型,布尔等)不会被设置为nulltrue | false
logPrefix指定的前缀字串,MyBatis将会增加记录器的名称。Any String
logImpl指定MyBatis的日志实现使用。如果此设置是不存在的记录的实施将自动查找。SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
proxyFactory指定代理工具,MyBatis将会使用创建懒加载能力的对象。CGLIB | JAVASSIS

注意:配置文件中配置显示sql语句

 

<settings>
<!--打印查询语句 -->
<settingname="logImpl"value="STDOUT_LOGGING"/>
</settings>

 

typeAliases

对实体类进行别名的定义

 ①: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>
          <!--定义实体类的别名为 book-->
		 <typeAlias type="com.tf.domain.Book" alias="book"/> 
		<!-- 批量别名定义(推荐) -->
		<!-- package:指定包名称来为该包下的po类声明别名,默认的别名就是类名(首字母大小写都可) -->
		<package name="com.qf.domain"/>
	</typeAliases>

输入映射

parameterType

如果传入对个参数,若参数类型是实体类中的

①:若参数类型是实体类中的,可以传入实体类

②:也可以将参数设置为Map

输出映射  

 resultType(实体类和数据库的字段一致)

使用resultType进行结果映射时,需要查询出的列名和映射的对象的属性名一致,才能映射成功。

如果查询的列名和对象的属性名全部不一致,那么映射的对象为空。

如果查询的列名和对象的属性名有一个一致,那么映射的对象不为空,但是只有映射正确那一个属性才有值。

如果查询的sql的列名有别名,那么这个别名就是和属性映射的列名。

resultMap(数据库的字段和实体列的字段不一致)

使用resultMap进行结果映射时,不需要查询的列名和映射的属性名必须一致。但是需要声明一个resultMap节点来对列名和属性名进行映射。

property:  实体类中的字段名

column: 数据库中的字段名

 <resultMap id="users1" type="com.tf.domain.Users1">
          <id property="uid" column="id"/>
          <result property="uname" column="name"></result>
           <result property="upassword" column="password"></result>
            <result property="ustatus" column="status"></result> 
            <result property="ucreateDate" column="createDate"></result>
            
    </resultMap>
     <select id="findAllUser1" resultMap="users1">
       select * from users 
    </select>

总结:

ResultType:结果集类型可以是对象也可以是Map实体类和数据库表的字段一致

ResultMap:结果集映射,当实体类属性与数据库字段(别名)不一致需要做结果映射

ParameterType:参数类型可以是对象也可以是Map

ParameterMap:不用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值