SpringBoot + Mybatis实体类属性与数据库表列名之间的对应关系

本文探讨了在SpringBoot与MyBatis框架下遇到的一个常见问题:实体类属性名与数据库列名不一致导致查询结果为空的情况。文章详细介绍了如何检查并启用MyBatis的驼峰命名转换功能,确保Java实体类与数据库表字段之间的正确映射。

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

今天在使用springboot框架和mybatis框架进行开发时,发现一个bug,就是本来实体类的属性名和数据库中的列名是一一对应的但是查询结果一直为空,更改类型也是空;
经过查询资料发现mybatis配置文件中默认设置了驼峰转换:
mysql中我习惯设置为“_”命名:
在这里插入图片描述
在mybatis中java的数据名称必须为驼峰形式:
在这里插入图片描述
否则查询结果会是null!

### Spring BootMyBatis-Plus整合达梦数据库配置示例 #### 项目依赖设置 为了使Spring Boot应用能够操作达梦数据库,需在`pom.xml`文件中加入相应的依赖项。除了常规的Spring Boot StarterMyBatis Plus Starter外,还需添加达梦数据库驱动程序作为项目的依赖。 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!-- 达梦数据库驱动 --> <dependency> <groupId>dm</groupId> <artifactId>DmJdbcDriver8</artifactId> <scope>system</scope> <version>8.0.0</version> <systemPath>${project.basedir}/lib/DmJdbcDriver8.jar</systemPath> </dependency> ``` 上述代码展示了如何通过Maven管理工具引入必要的组件[^1]。 #### 应用属性配置 接着,在`application.yml`或`application.properties`文件内指定连接到达梦数据库的具体参数: ```yaml spring: datasource: url: jdbc:dmsql://localhost:5236/databasename?charset=UTF-8&user=yourusername&password=yourpassword driver-class-name: dm.jdbc.driver.DmDriver username: yourusername password: yourpassword ``` 此部分设定告知应用程序怎样建立同目标数据库之间的通信链路。 #### 实体类定义 创建实体类映射结构,这假设有一个名为`t_user`的数据用于存储用户信息,则对应的Java Bean如下所示: ```java package com.example.demo.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("t_user") public class User { @TableField(value = "id", exist = true) private Long id; @TableField(value = "name", exist = true) private String name; } ``` 这段代码片段体现了基于Lombok简化getter/setter方法声明的同时利用MyBatis Plus特性完成字段列名间的关联。 #### Mapper接口编写 最后一步就是设计Mapper层以便执行SQL语句并处理查询结果集。对于前述提到的User对象而言,其对应的操作契约可以这样描述: ```java package com.example.demo.mapper; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.demo.entity.User; @Mapper public interface UserMapper extends BaseMapper<User> {} ``` 至此已经完成了整个集成过程中的核心要素说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值