spring boot项目中 mybatis-config.xml 的配置

MyBatis配置详解:缓存、懒加载与执行策略
部署运行你感兴趣的模型镜像
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
	<!-- 全局参数 -->
	<settings>
		<!-- 使用全局的映射器启用或者禁用缓存。 -->
		<setting name="cacheEnabled" value="true"/>
		<!-- 全局启用或禁用延时加载,当禁用时,所有关联对象都会即时加载。 -->
		<setting name="lazyLoadingEnabled" value="true" />
		<!-- 当启用时,有延时加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
		<setting name="aggressiveLazyLoading" value="true"/>
		<!-- 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true -->
        ????????<setting name="multipleResultSetsEnabled" value="true"/>
		<!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true -->
        ????????<setting name="useColumnLabel" value="true"/>
         ???????<!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false -->
       ???????? <setting name="useGeneratedKeys" value="true"/>
        ????????<!-- 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部 -->
        ????????<setting name="autoMappingBehavior" value="PARTIAL"/>
        ????????<!-- 这是默认的执行类型 (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新) -->
        ????????<setting name="defaultExecutorType" value="SIMPLE"/>
        ????????<!-- 使用驼峰命名法转换字段。 -->
        ????????<setting name="mapUnderscoreToCamelCase" value="true"/>
        ????????<!-- 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session -->
        ????????<setting name="localCacheScope" value="SESSION"/>
        ????????<!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型 -->
        ????????<setting name="jdbcTypeForNull" value="NULL"/>
	</settings> 
</configuration>

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

Spring Boot 项目中,MyBatis 的全局配置文件 `mybatis-config.xml` 并不是必须的,因为 Spring Boot 提供了对 MyBatis 的自动配置支持,可以完全通过 `application.yml` 或 `application.properties` 文件进行替代性配置。 例如,可以通过以下方式在 `application.yml` 中配置 MyBatis 的核心参数: ```yaml mybatis: type-aliases-package: com.yang.springcloud.pojo mapper-locations: classpath:mybatis/mapper/*.xml configuration: cache-enabled: true ``` 上述配置中,`type-aliases-package` 用于指定实体类的包路径,`mapper-locations` 用于加载 XML 映射文件,`configuration` 下的 `cache-enabled` 用于启用 MyBatis 的二级缓存功能[^1]。这些配置替代了传统 MyBatis 项目中需要通过 `mybatis-config.xml` 实现的全局设置。 此外,在 Spring Boot 应用启动过程中,MyBatis 的自动配置机制会创建 `SqlSessionFactory`,并自动加载相关的配置信息,包括 Mapper 接口、XML 文件等,而无需手动指定 `mybatis-config.xml` 的路径[^3]。这意味着开发者可以完全依赖 Spring Boot 的自动配置能力,省略传统的 XML 配置文件,从而简化项目的结构和维护成本。 如果确实需要对 MyBatis 进行更高级的自定义配置,例如设置插件、对象工厂、环境配置等,也可以通过 Java 配置类的方式进行替代。例如: ```java @Configuration public class MyBatisConfig { @Bean public ConfigurationCustomizer mybatisConfigurationCustomizer() { return new ConfigurationCustomizer() { @Override public void customize(Configuration configuration) { // 添加自定义配置 configuration.setMapUnderscoreToCamelCase(true); configuration.setLogImpl(StdOutImpl.class); } }; } } ``` 该配置类通过 `ConfigurationCustomizer` 接口对 MyBatis 的 `Configuration` 对象进行定制化设置,例如启用自动映射下划线到驼峰命名规则、设置日志实现等。 --- ### 多数据源或复杂配置的处理 对于需要多数据源或多环境配置项目,可以通过定义多个 `SqlSessionFactory` Bean 并结合 `@Configuration` 类进行精细化控制。例如: ```java @Configuration @MapperScan(basePackages = "com.example.mapper.primary", sqlSessionFactoryRef = "primarySqlSessionFactory") public class PrimaryDataSourceConfig { @Bean public SqlSessionFactory primarySqlSessionFactory(DataSource primaryDataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(primaryDataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/primary/*.xml")); return bean.getObject(); } } ``` 上述方式允许在不使用 `mybatis-config.xml` 的前提下,通过 Java 配置类灵活管理多个数据源和对应的 MyBatis 配置--- ### 总结 Spring Boot 项目中可以完全不使用 `mybatis-config.xml` 文件,而是通过 `application.yml` 或 Java 配置类实现 MyBatis 的全局配置。这种方式不仅简化了项目结构,还提升了配置的灵活性和可维护性,尤其适合现代 Spring Boot 项目的开发实践。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值