mybatismysql配置⽂件路径_Mybatis全局配置⽂件详解(三)每个基于Mybatis应⽤都是以⼀个SqlSessionFactory实例为中⼼。SqlSessionFactory实例可以由SqlSessionFactoryBuild获得,⽽SqlSessionFactoryBuild可以以⼀个xml配置⽂件(l)构建出SqlSessionFactory实例。
/p>
PUBLIC "-////DTD Config 3.0//EN"
"/dtd/mybatis-3-config.dtd">
//......
主要有以下⼏个标签:
注意:mybatis全局配置⽂件的标签是有顺序限制的。
properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?
⼀、properties
作⽤:引⽤java属性⽂件中的配置信息,⽐如,加载连接数据库的各种属性的配置⽂件。
properties有两个属性:
resource 引⼊类路径下资源
url 引⼊⽹络路径或磁盘路径下资源
jdbc.properties
jdbc.sql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.178.5:12345/ssm?useUnicode=true&characterEncoding=UTF-
8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.name=root
jdbc.password=123456
在配置⽂件中即可以使⽤类似${jdbc.name}来获取对应的属性值。
⼆、settings
⽤于改变Mybatis运⾏时的⾏为,⽐如开启⼆级缓存、开启延时加载等操作。
常见的配置如下:
1. cacheEnabled
38度可以吃布洛芬吗该配置影响的所有映射器中配置的缓存的全局开关。可选值true或false,默认是true。
2. lazyLoadingEnabled
延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。可选值true或false,默认是false。
3. aggressiveLazyLoading
是否允许单⼀语句返回多结果集(需要兼容驱动)。
可选值true或false,默认是true。
4. useColumnLabel
使⽤列标签代替列名。不同的驱动在这⽅⾯会有不同的表现, 具体可参考相关驱动⽂档或通过测试这两种不同的模式来观察所⽤驱动的结果。
可选值true或false,默认是true。
5. useGeneratedKeys
允许 JDBC ⽀持⾃动⽣成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使⽤⾃动⽣成主键,尽管⼀些驱动不能兼容但仍可正常⼯作(⽐如 Derby)。
可选值true或false,默认是false。
6. autoMappingBehavior
指定 MyBatis 应如何⾃动映射列到字段或属性。 NONE 表⽰取消⾃动映射;PARTIAL 只会⾃动映射没有定义嵌套结果集映射的结果集。FULL 会⾃动映射任意复杂的结果集(⽆论是否嵌套)。
可选值NONE, PARTIAL, FULL,默认是PARTIAL。
7. defaultExecutorType
配置默认的执⾏器。SIMPLE 就是普通的执⾏器;REUSE 执⾏器会重⽤预处理语句(prepared statements); BATCH 执⾏器将重⽤语句并执⾏批量更新。
可选值SIMPLE, REUSE, BATCH,默认是SIMPLE 。
8. defaultStatementTimeout
设置超时时间,它决定驱动等待数据库响应的秒数。
9. safeRowBoundsEnabled
允许在嵌套语句中使⽤分页(RowBounds)。
可选值true或false,默认是false。
10. mapUnderscoreToCamelCase
是否开启⾃动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
可选值true或false,默认是false。
11. localCacheScope
MyBatis 利⽤本地缓存机制(Local Cache)防⽌循环引⽤(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存⼀个会话中执⾏的所有查询。 若设置值为 STATEMENT,本地会话仅⽤在语句执⾏上,对相同 SqlSession 的不同调⽤将不会共享数据。
可选值SESSION,STATEMENT,默认是SESSION。
12. jdbcTypeForNull
当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接⽤⼀般类型即可,⽐如 NULL、VARCHAR 或 OTHER。
默认是OTHER。
13. lazyLoadTriggerMethods
指定哪个对象的⽅法触发⼀次延迟加载。
默认是equals,clone,hashCode,toString。
14. defaultScriptingLanguage
指定动态 SQL ⽣成的默认语⾔。
默认是org.apache.ltags.XMLDynamicLanguageDriver。
png和jpg有什么区别
15. callSettersOnNulls
指定当结果集中值为 null 的时候是否调⽤映射对象的 setter(map 对象时为 put)⽅法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有⽤的。注意基本类型(int、boolean等)是不能设置成 null 的。
可选值true或false,默认是false。
16. logPrefix
指定 MyBatis 增加到⽇志名称的前缀。
17. logImpl
指定 MyBatis 所⽤⽇志的具体实现,未指定时将⾃动查。
可选值SLF4J,LOG4J,LOG4J2,JDK_LOGGING,COMMONS_LOGGING,STDOUT_LOGGING,NO_LOGGING,没有默认值。
18. proxyFactory
指定 Mybatis 创建具有延迟加载能⼒的对象所⽤到的代理⼯具。
可选值CGLIB, JAVASSIST,默认值CGLIB。
三、typeAliases
类型别名是为 Java 类型设置⼀个短的名字。它只和 XML 配置有关,存在的意义仅在于⽤来减少类完全限定名的冗余。
例如:
当这样配置时,Blog可以⽤在任何使⽤domain.blog.Blog的地⽅。
也可以指定⼀个包名,MyBatis 会在包名下⾯搜索需要的 Java Bean,⽐如:
每⼀个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使⽤ Bean 的⾸字母⼩写的⾮限定类名来作为它的别名。 ⽐如domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。看下⾯的例⼦:
@Alias("author")public classAuthor {
...
}
已经为许多常见的 Java 类型内建了相应的类型别名。它们都是⼤⼩写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
_byte
byte
_long
long
_short
short
_int
int
_integer
int
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
List
arraylist
ArrayList
collection
Collection
mysql语句的执行顺序iterator
Iterator
四、typeHandlers
⽆论是 MyBatis 在预处理语句(PreparedStatement)中设置⼀个参数时,还是从结果集中取出⼀个值时, 都会⽤类型处理器将获取的值以合适的⽅式转换成 Java 类型。下表描述了⼀些默认的类型处理器。
类型处理器Java 类型JDBC 类型
BooleanTypeHandler
java.lang.Boolean, boolean
数据库兼容的 BOOLEAN
ByteTypeHandler
java.lang.Byte, byte
数据库兼容的 NUMERIC 或 BYTE
ShortTypeHandler
java.lang.Short, short
数据库兼容的 NUMERIC 或 SHORT INTEGER
IntegerTypeHandler
spring和mybatis整合步骤java.lang.Integer, int
数据库兼容的 NUMERIC 或 INTEGER
LongTypeHandler
java.lang.Long, long
linux教程电子书下载
数据库兼容的 NUMERIC 或 LONG INTEGER
FloatTypeHandler
java.lang.Float, float
数据库兼容的 NUMERIC 或 FLOAT
DoubleTypeHandler
java.lang.Double, double

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。