MyBatis 类型别名优化

MyBatis 类型别名优化,第1张

目前所了解的核心配置文件的配置,大部分是在对项目做优化。

以下是类型别名优化:
类型别名(typeAliases)
会出现两种设置类型,一是对其 一个包下——比如pojo 类的数量不是很多 可以通过指定那个类 利用alias设置别名,这样在mapper.xml文件中就不用写全其——包名.类名。意在降低冗余的全限定类名书写。

当用包名时:

<typeAliases>
       <package name="pojo"/>
    typeAliases>

会自动去扫描该包下的类,其类的类名就是默认的别名。也可以实现降低冗余。

除了以上两种 还可以通过利用注解实现这个目的。

package pojo;

import org.apache.ibatis.type.Alias;

@Alias("Hero")
public class heros {
}

其作用是一致的。

以上的别名都是写在mapper.xml文件中的resultType=" ",作用机制还是一样,只是目的在于优化,int 和_int 所返回的一个是包装类型和普通数据类型 也就是有下划线和没有的区别

第三个要谈及的配置,即setting:
此配置所涵盖的设置选项繁多,这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。部分掌握部分了解即可。

一个配置完整的 settings 元素的示例如下:

<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
settings>

需要掌握的有:
开启缓存和懒加载

useGeneratedKeys 允许 JDBC 支持自动生成主键,需要数据库驱动支持。 true or false

logImpl
指定 MyBatis 所用日志的具体实现,未指定时将自动查找。
有效值: 任何字符串都可——SLF4J | LOG4J(deprecated since 3.5.9) | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING

mapUnderscoreToCamelCase——用于是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/728325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存