Mybatis Plus 驼峰映射错误导致的SQL异常

博客指出向数据库插入数据时,出现实体类属性和数据库字段映射失败的错误,如 'Unknown column' 。解决方案是检查实体类属性和数据库表字段名是否满足映射关系,实体类属性用驼峰命名,数据库字段用下划线连接,也可在配置文件关闭驼峰到下划线的映射。

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

再向数据库中插入数据时 , 爆出以下错误 : 

Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'create_time' in 'field list'

出现这样的错误是因为你的实体类属性和数据库字段映射失败 , 字段和属性匹配不上, 导致 CRUD 操作失败

解决方案 :

  1. 先检查实体类中的属性和数据库表中的字段名是否满足映射关系 , 实体类中的属性使用驼峰命名 ! ! ! 

注意 : 数据库字段 和 实体类属性的名字 也别多写个单词还是少些个单词, 也会对应不上 , 导致CRUD失效

 

上面实体类对应的数据库表中的 create_Time , update_Time 这两个字段 : 使用下划线连接 ! ! !

 

为什么必须满足驼峰命名 ? 其实也不是 , 这只是一个该行业的约定而已 , 你也可以在 yml 文件或者 properties 配置文件关闭驼峰到下划线的映射 , CRUD 时 , 只要保证实体类和数据库字段的单词 , 符号 保持一致即可

#关闭驼峰映射
mybatis-plus.configuration.map-underscore-to-camel-case=false

### MyBatis-Plus 映射配置 MyBatis-Plus 提供了一套简洁而强大的映射机制,能够显著提升数据库操作的便捷性和效率。通过合理的实体类与表结构之间的映射关系设置,可以有效减少重复编码工作量。 #### 实体类注解方式 为了使实体类自动完成与数据表字段的一一对应,在定义实体类时可以通过添加特定注解来指定映射规则: ```java import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @TableName("user") // 表名 public class User { @TableField(value = "id", exist = true) private Long id; @TableField(value = "name") private String name; public Long getId() {return this.id;} public void setId(Long id) {this.id = id;} public String getName() {return this.name;} public void setName(String name) {this.name = name;} } ``` 上述代码展示了如何利用 `@TableName` 和 `@TableField` 注解来进行基本的数据表到Java对象属性间的映射[^1]。 #### 配置文件中的全局策略设定 除了在实体类中使用注解外,还可以通过修改 Spring Boot 应用程序的配置文件(application.yml 或 application.properties),调整一些默认行为以适应不同的业务需求: 对于 YAML 文件而言: ```yaml mybatis-plus: global-config: db-config: id-type: auto # 设置主键生成策略为自增模式 configuration: map-underscore-to-camel-case: true # 开启驼峰命名法支持 ``` 以上配置项允许开发者灵活控制诸如 ID 自动生成、下划线转驼峰等特性,从而更好地满足实际应用场景下的多样化要求[^2]。 --- ### 常见问题解决方案 当遇到 MyBatis-Plus 映射方面的问题时,通常可以从以下几个角度出发去排查并解决问题: - **检查实体类上的注解是否正确无误**:确保所使用的注解名称以及参数值都符合预期; - **确认数据库连接池配置正常运作**:验证应用程序能否成功建立同目标数据库之间稳定可靠的链接; - **核对 SQL 日志输出情况**:开启调试日志级别以便观察执行过程中的具体SQL语句及其返回结果集; 如果仍然无法定位错误原因,则建议参照官方文档或社区论坛寻求进一步帮助和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值