mybatis常用默认配置

本文详细解析了MyBatis的全局配置参数,包括缓存开关、延迟加载、自动映射行为、执行器类型等关键配置项的有效值及默认设置,帮助开发者深入了解MyBatis的运行机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置参数描述             有效值    默认值
cacheEnable该配置影响所有映射器中配置的缓存全局开关  true、false true
lazyLoadingEnable延迟加载的全局开关。当它开启时,所有关联对象都会延迟加载。特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态true、false false
aggressiveLazyLoading当启用时,对任意延迟属性对象的调用会使带有延迟加载属性的对象完整加载,反之每种属性按需加载true、falsetrue
multipleResultSets是否允许单一语句返回结果集(需要兼容驱动)  true、falsetrue
useColumnLabel使用列标签代替列名,true、falsetrue
useGenerateKeys允许JDBC自动生成主键,需要驱动兼容。如果设置为true,则强制自动生成主键true、falsefalse
autoMappingBehavior

指定mybatis应如何自动映射列到字段或属性
NONE:取消自动映射

PARTIAL:只会自动映射没有定义嵌套结果集映射的结果集

FULL:自动映射任务复杂的结果集(无论是否嵌套)

NONE、PARTILA、FULLPARTIAL
defaultExecutorType

配置默认的执行器
SIMPLE:普通的执行器

REUSE:执行器会重复利用预处理语句(prepared statements)

BATCH:执行器将重用语句并执行批量更新

SIMPLE、REUSE、BATCHSIMPLE
 defaultStatementTimeout设置超时时间,它决定驱动等待数据相应的秒数。当没有设置时它取得是驱动默认时间 any position integer  
 safeRowBoundsEnabled允许在嵌套语句中使用分页 true、false  false
mapUnderscoreToCamelCase 是否开启自动驼峰命名映射,即从数据库列名A_COLUMN到JAVA属性名aColumn的类似映射  true、falsefalse 
localCacheScope 

 mybatis利用本地缓存机制(local cache)防止循环引用(circular references)和加速重复嵌套查询。默认值是SESSIOn,这种情况下会缓存一个会话执行的所有查询。若设置为STATEMENT,本地会话仅仅用在语句执行上,对相同的sqlSession的不同调用将不会共享数据

SESSION、STATEMENT SESSION 
jdbcTypeForNull 当没有为参数提供特定的JDBC类型时,为空值指定JDBC类型 常见:NULL、VARCHAR、OTHER OTHER 
lazyLoadTriggerMethod 指定对象的方法触发一次延迟加载 如果是一个方法列表,则用逗号隔开 equals、clone、hashCode、 
 defaultScriptingLanguage指定动态SQL生成的默认语言可以配置类的别名或者类的全限定名 org.apach.ibatis.
scripting.xmltags.
XMLDynamicLang
uageDriver 
callSettersOnNulls 当指定结果集中的值为null时是否调用映射对象的setter(map对应的put)方法,这对于有Map.keyset()依赖或null值初始化的时候是有用的。注意基本数据类型(int、boolean等)是不能设置为null的   true、false false 
logPrefix 指定mybatis增加到日志名称的前缀 任何字符串 没有设置 
logImpl 指定mybatis所用日志的具体实现,未指定时自动查找   
 proxyFactory  指定mybatis创建具有延迟加载功能的对象所用到的代理工具 CGLIB、JAVASSIST 3.3.0版本以上JAVASSIST。,否则CHLIB 

转载于:https://www.cnblogs.com/gulang-jx/p/10205935.html

<think>好的,我现在需要回答用户关于MyBatis Plus的默认编码规范和使用约定的问题。首先,我需要回顾一下MyBatis Plus的官方文档和相关资料,确保信息准确。 用户提到了三个引用,其中引用[1]是官方文档,引用[2]和[3]是关于基本使用和代码生成器的内容。根据这些资料,MyBatis Plus确实有很多默认约定,比如表名和类名的映射,字段名的自动转换等。我需要整理这些规范,并分点说明。 首先,表名和类名的映射。根据官方文档,默认情况下,MyBatis Plus会将类名的驼峰形式转换为下划线形式作为表名。例如,UserInfo类对应user_info表。但如果有@TableName注解,会优先使用注解指定的表名。这点需要明确说明。 接下来是字段映射,同样遵循驼峰转下划线的规则,比如userName对应user_name字段。如果有@TableField注解,可以自定义字段名或者处理非表字段的情况。需要提到exist属性用于排除非表字段。 主键的约定也很重要。默认使用id字段作为主键,如果主键名不同,需要用@TableId注解指定。同时,主键生成策略默认是IdType.NONE,需要用户自己设置,比如ASSIGN_ID或AUTO等。这里可能需要引用官方文档中的说明。 逻辑删除的约定,使用@TableLogic注解标记字段,默认逻辑删除值为1,未删除为0。但用户可以通过注解参数修改这些值。需要确认官方文档中的默认值是否正确,是否有变化。 然后是全局配置,比如在配置类中使用@Configuration和@MapperScan注解,配置MybatisPlusInterceptor等。这部分内容在快速入门指南中有提到,需要引用相关部分。 代码生成器的默认规范,比如生成实体类、Mapper接口等的位置和命名规则,以及Lombok的支持。引用[3]提到代码生成器可以自动生成基础代码,所以需要说明生成的文件结构和命名约定。 使用约定方面,需要强调Service层继承ServiceImpl,Mapper接口继承BaseMapper,以及分页查询的配置方法。这些都是MyBatis Plus推荐的最佳实践,能提高开发效率。 最后,用户可能想知道如何覆盖默认规范,比如使用注解或配置文件修改默认行为,这部分需要简要说明,让用户知道有自定义的灵活性。 在整理过程中,要确保每个部分都有对应的引用支持,比如引用官方文档或快速入门指南中的内容。同时,注意使用正确的中文表达,避免技术术语错误。检查是否有遗漏的重要约定,如字段策略、条件构造器的使用等,但根据用户的问题,可能不需要深入每个细节,重点放在默认规范和主要使用约定上。 现在需要将这些点组织成结构清晰的回答,分点列出,并添加相关问题。确保语言自然,符合用户要求的中文回答,同时正确应用引用标记。</think>### MyBatis Plus 默认编码规范与使用约定 MyBatis Plus 通过一系列默认约定简化了开发流程,以下是其核心规范及使用约定: --- #### 一、默认命名规范 1. **表名与类名映射** - 默认将实体类名的**驼峰命名**转换为**下划线命名**作为表名。 例如:实体类 `UserInfo` 对应数据库表 `user_info`。 若需自定义表名,可使用 `@TableName("表名")` 注解[^1]。 2. **字段名映射** - 实体类属性名的驼峰格式会自动映射为表字段的下划线格式。 例如:属性 `userName` 对应字段 `user_name`。 若需显式指定字段名或排除非表字段,可使用 `@TableField(value="字段名", exist=true/false)`[^1]。 3. **主键约定** - 默认以 `id` 字段为主键。若主键字段名不同,需通过 `@TableId` 注解指定。 - 主键生成策略默认为 `IdType.NONE`(需手动赋值),常用策略包括: `ASSIGN_ID`(雪花算法)、`AUTO`(数据库自增)等。 --- #### 二、逻辑删除规范 - 使用 `@TableLogic` 注解标记逻辑删除字段,默认值如下: ```java @TableLogic private Integer isDeleted; // 删除状态 1=已删除, 0=未删除 ``` 可通过注解参数修改逻辑值,例如:`@TableLogic(delval = "1", value = "0")`。 --- #### 三、全局配置约定 1. **Mapper 扫描与插件配置** - 需在配置类中添加 `@MapperScan("包路径")` 注解扫描 Mapper 接口。 - 通过 `MybatisPlusInterceptor` 配置分页插件等全局功能[^2]。 2. **Service 层与 Mapper 层继承** - Service 实现类需继承 `ServiceImpl<Mapper, Entity>`。 - Mapper 接口需继承 `BaseMapper<Entity>`,直接获得 CRUD 方法。 --- #### 四、代码生成器规范 - 使用代码生成器时,默认生成以下内容: - 实体类:`User` → `User.java`(带 `@Data` 注解,支持 Lombok)。 - Mapper 接口:`UserMapper.java`(继承 `BaseMapper`)。 - XML 文件:默认生成基础 SQL 映射,可通过配置禁用[^3]。 --- #### 五、覆盖默认规范的方法 1. **注解覆盖** 通过 `@TableName`、`@TableField` 等注解自定义表名或字段映射。 2. **配置文件修改** 在 `application.yml` 中全局配置,例如: ```yaml mybatis-plus: configuration: map-underscore-to-camel-case: false # 关闭自动驼峰转换 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值