为了账号安全,请及时绑定邮箱和手机立即绑定

我们如何使用Spring Boot将jsp文件中的表单数据保存到数据库中?

我们如何使用Spring Boot将jsp文件中的表单数据保存到数据库中?

守着一只汪 2023-08-09 15:10:20
我正在创建一个 Spring Boot API,它基本上要求用户创建一个帐户。帐户详细信息显示在表格上。我想从表单中获取详细信息并将其保存到数据库(MYSQL)中。模型类如下:@Table(name = "user")public class User {    @Id    @Column(name = "ID")    private int ID;    @Column(name = "Fname")    private String fName;    @Column(name = "Lname")    private String lName;    @Column(name = "dob")    private String dob;    @Column(name = "email")    private String email;    @Column(name = "pWord")    private String pWord;}控制器类如下:public class MController {    @Autowired    private UserRepository userRepository;    @PostMapping("/successSignUp")    public String dataToDB(@ModelAttribute("User") User formData, Model model) {        userRepository.save(new User(formData.getFname(), formData.getLname(), formData.getDob(), formData.getEmail(), formData.getPassword()));            model.addAttribute("user", new User());        return "welcomeUser";    }当我执行此代码时,出现以下错误:java.sql.SQLSyntaxErrorException: Unknown column 'p_word' in 'field list'我在这里做错了什么?提前致谢。
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

Spring框架在内部将camel case更改为snake case。

这是 Spring Boot 命名策略的一部分:我们可以覆盖这些值,但默认情况下,这些将:

  1. 将骆驼箱改为蛇箱

  2. 将点替换为下划线

  3. 小写表名

您可以尝试将列名称更新为 pword 而不是 pWord 吗?

@Column(name = "pword")
private String pWord;

如果您使用“pWord”,它将被视为 p_word。请将列名称更新为“pword”并尝试。

例子:

@Entity

public class Account {

    @Id

    private Long id;

    private String defaultEmail;

}

And then turn on some SQL debugging in our properties file:



hibernate.show_sql: true

At startup, we'll see the following create statement in our logs:



Hibernate: create table account (id bigint not null, default_email varchar(255))


查看完整回答
反对 回复 2023-08-09
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

解决此问题的最简单的解决方案是将列名称设置为小写或大写。

@Column(name = "pword")
private String pWord;

或者

@Column(name = "PWORD")
private String pWord;

这将避免 spring 将名称转换为蛇形命名。

MySql 中的列名不区分大小写,因此它可以工作。


查看完整回答
反对 回复 2023-08-09
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信