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

标签 java mysql spring spring-boot spring-data-jpa

我正在创建一个 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;
}

Controller 类如下:

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'

我在这里做错了什么? 提前致谢。

最佳答案

Spring 框架在内部将驼峰式大小写更改为蛇形大小写。

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

  1. 将 Camel 箱改为蛇箱
  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))

关于java - 我们如何使用Spring Boot将jsp文件中的表单数据保存到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58009653/

相关文章:

java:将类引用传递给另一个线程

java - float 未显示正确的格式。寻找 xxxxxx.xx

php - mysql_fetch_array

Php PDO 请求从派生表列的总和中获取数据

java - 如何在spring配置类中创建RestControllerAdvice类型的spring @bean

java - 如何将 flush() 用于 PrintWriter

java - EclipseLink 中的一对一关系

mysql - 按 user_ids 的 VIEW 列表排序

java - 如何从 url 中删除多余的表单操作标记?

java - Spring MVC 教程问题 - DispatcherServlet 配置需要包含支持此处理程序的 HandlerAdapter