spring进阶(四)-- mybatis驼峰命名功能

本文介绍如何在MyBatis中配置属性使用驼峰命名法,包括启用下划线到驼峰命名规则的映射及类别名的设置方法。

mybatis支持属性使用驼峰的命名

mapUnderscoreToCamelCase:是否启用下划线与驼峰式命名规则的映射(如first_name => firstName)
开启:

mybatis-config.xml

<!-- 开启驼峰命名转换   seckill_id====>seckillId -->
 		 <setting name="mapUnderscoreToCamelCase" value="true"/>


类别名:

在spring-dao.xml中进行配置

<!-- mybatis- sessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 注入数据库连接池 -->
		<property name="dataSource" ref="dataSource"/>
		<!-- 配置mybatis全局配置文件 -->
		<property name="configLocation" value="classpath:mybatis-config.xml"/>
		<!-- 扫描entity包  使用别名 
			org.seckill.entity.Seckill===>Seckill  resultType,parameterType
		-->
		<property name="typeAliasesPackage" value="org.seckill.entity"/>
		<!-- 扫描sql配置文件 ,mapper.xml -->
		<property name="mapperLocations" value="classpath:mapper/*.xml"/>
	</bean>



### 如何使用驼峰命名法插件 在开发过程中,为了提高代码可读性和一致性,通常会采用驼峰命名法来定义变量名、方法名等。对于数据库字段名称与实体类属性之间的映射,如果数据库表列名为下划线风格而实体类属性为驼峰风格,则可以借助特定框架提供的工具或配置实现自动转换。 #### 使用 Spring Data MongoDB 的 `@Field` 注解配合自定义命名策略 当涉及到 NoSQL 数据库如MongoDB时,在Spring Data项目中可以通过设置自定义的命名策略来处理这种差异。具体来说: - 可以为应用程序中的持久化层引入 spring-data-mongodb 依赖项。 - 创建一个继承自 AbstractMongoClientConfiguration 的配置类,并重写 mappingContext() 方法以注册新的 PropertyNamingStrategy 实现[^1]。 ```java @Configuration public class MongoConfig extends AbstractMongoClientConfiguration { @Override protected void configureMappingBasePackages(MongoMappingContext mappingContext) { super.configureMappingBasePackages(mappingContext); // 设置默认的属性命名策略为蛇形到驼峰式的转换器 mappingContext.setSimpleTypeHolder(new SimpleTypeHolder()); mappingContext.setCustomConversions(new CustomConversions(Collections.emptyList())); mappingContext.setInitialEntitySet(getInitialEntitySet()); mappingContext.setApplicationContext(applicationContext); mappingContext.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); } } ``` 上述代码片段展示了如何通过修改 Mapping 上下文的方式来应用 SnakeCase 到 CamelCase 的转换逻辑。这意味着即使数据库中的字段是以 snake_case 形式存储,但在 Java 应用程序内部操作这些数据时将会看到对应的 camelCase 属性名称。 另外一种方式是在每个实体类字段上显式指定其对应于数据库集合文档内的键名,这同样适用于其他支持此特性的ORM/ODM解决方案。 ```java package com.mycompany.domain; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; @Document(collection="people") class Person { @Id private String id; @Field("first_name") // 映射至 first_name 字段 private String firstName; @Field("last_name") // 映射至 last_name 字段 private String lastName; @Field("person_age")// 映射至 person_age 字段 private int age; } ``` 这种方式允许更细粒度地控制各个字段的具体映射关系,而不必担心全局范围内的影响。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值