情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。 |
JdbcType 常量,常用值:NULL、VARCHAR 或 OTHER。 |
OTHER |
lazyLoadTriggerMethods |
指定对象的哪些方法触发一次延迟加载。 |
用逗号分隔的方法列表。 |
equals,clone,hashCode,toString |
defaultScriptingLanguage |
指定动态 SQL 生成使用的默认脚本语言。 |
一个类型别名或全限定类名。 |
org.apache.ibatis.scripting.xmltags.XMLLanguageDriver |
defaultEnumTypeHandler |
指定 Enum 使用的默认 TypeHandler 。(新增于 3.4.5) |
一个类型别名或全限定类名。 |
org.apache.ibatis.type.EnumTypeHandler |
callSettersOnNulls |
指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这在依赖于 Map.keySet() 或 null 值进行初始化时比较有用。注意基本类型(int、boolean 等)是不能设置成 null 的。 |
true | false |
false |
returnInstanceForEmptyRow |
当返回行的所有列都是空时,MyBatis默认返回 null 。 当开启这个设置时,MyBatis会返回一个空实例。 请注意,它也适用于嵌套的结果集(如集合或关联)。(新增于 3.4.2) |
true | false |
false |
logPrefix |
指定 MyBatis 增加到日志名称的前缀。 |
任何字符串 |
未设置 |
logImpl |
指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 |
SLF4J | LOG4J(3.5.9 起废弃) | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING |
未设置 |
proxyFactory |
指定 Mybatis 创建可延迟加载对象所用到的代理工具。 |
CGLIB (3.5.10 起废弃) | JAVASSIST |
JAVASSIST (MyBatis 3.3 以上) |
vfsImpl |
指定 VFS 的实现 |
自定义 VFS 的实现的类全限定名,以逗号分隔。 |
未设置 |
useActualParamName |
允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的项目必须采用 Java 8 编译,并且加上 -parameters 选项。(新增于 3.4.1) |
true | false |
true |
configurationFactory |
指定一个提供 Configuration 实例的类。 这个被返回的 Configuration 实例用来加载被反序列化对象的延迟加载属性值。 这个类必须包含一个签名为static Configuration getConfiguration() 的方法。(新增于 3.2.3) |
一个类型别名或完全限定类名。 |
未设置 |
shrinkWhitespacesInSql |
从SQL中删除多余的空格字符。请注意,这也会影响SQL中的文字字符串。 (新增于 3.5.5) |
true | false |
false |
defaultSqlProviderType |
指定一个拥有 provider 方法的 sql provider 类 (新增于 3.5.6). 这个类适用于指定 sql provider 注解上的type (或 value ) 属性(当这些属性在注解中被忽略时)。 (e.g. @SelectProvider ) |
类型别名或者全限定名 |
未设置 |
nullableOnForEach |
为 'foreach' 标签的 'nullable' 属性指定默认值。(新增于 3.5.9) |
true | false |
false |
argNameBasedConstructorAutoMapping |
当应用构造器自动映射时,参数名称被用来搜索要映射的列,而不再依赖列的顺序。(新增于 3.5.10) |
true | false |
false |
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
</typeAliases>
MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。Mybatis 内置了默认的类型处理器,如果不满足需求,还可以自定义类型处理器;具体做法为:实现 org.apache.ibatis.type.TypeHandler
接口, 或继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandler
, 并且可以(可选地)将它映射到一个 JDBC 类型。
每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。 如果想覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现;具体做法为:继承 org.apache.ibatis.reflection.factory.DefaultObjectFactory 类并覆盖相应的方法。