java - Hibernate、MySQL、Spring MVC、Freemarker :java. sql.SQLSyntaxErrorException:您的 SQL 语法有错误

标签 java mysql hibernate spring-mvc tomcat

<分区>

我正在制作简单的 Spring MVC 库应用程序,使用 Freemarker、MySQL 和 Hibernate, 我创建了向图书馆添加新书的表格,它的代码是:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Create new user</title>
</head>
<body>
<form name="booker" action="/newBook" method="post" >
<p>Name</p>
<input title="Name" type="text" name="name">
<p>Desc</p>
<input title="Email" type="text" name="desc">
<p>Author</p>
<input title="Age" type="text" name="aut">
<p>Year</p>
<input title="Age" type="text" name="year">
<input type="submit" value="OK">
</form>
</body>
</html>

我还有 Controller、BookDAO、BookService 和 Book 实体

Controller :

@Controller
@RequestMapping("/")
public class BookController {
@Autowired
private BookService service;

@GetMapping("/books")
public String viewAll(Model model){
    model.addAttribute("books",service.findAll());
    return "books";
}
@GetMapping("/addBook")
public String addBook(){

    return "createBook";
}
@PostMapping("/newBook")
public String newBooks(@ModelAttribute("booker") Book book){
    service.add(book);
    return "redirect:/books";
}
}

实体:

  @Table(name = "booker")
  @Entity
  public class Book {
  private int id;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column(name = "idbooker")
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
private String name;
private String desc;
private String aut;
private int year;
@Column(name = "name")
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

@Column(name="desc")
public String getDesc() {
    return desc;
}
public void setDesc(String desc) {
    this.desc = desc;
}

@Column(name = "aut")
public String getAut() {
    return aut;
}
public void setAut(String author) {
    this.aut = author;
}


@Column(name = "year")
public int getYear() {
    return year;
}
public void setYear(int year) {
    this.year = year;
}
}

当我尝试发布新书时,出现此异常,数据库列的名称相同,有人可以告诉我如何修复它吗,ty。 enter image description here

最佳答案

可能是你对 desc(保留字)有问题尝试使用 backtics

 @Column(name="`desc`")

关于java - Hibernate、MySQL、Spring MVC、Freemarker :java. sql.SQLSyntaxErrorException:您的 SQL 语法有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54365075/

相关文章:

Mysql LIMIT 返回意外的行

java - 是否允许在一个 Criteria 内多次使用相同的 DetachedCriteria?

java - 如何在 Hibernate 中持久化具有两个多对一双向依赖关系的实体?

hibernate - 如何在 Scala 中实现 org.hibernate.Session

java - Floyd Warshall算法实现

java - Java中的二维字符串数组排序

java - Android 2.3.3 媒体播放器出现 NullPointerException

java - BST层级顺序遍历

mySQL左外连接不选择可能的所有数据

javascript - 如何使用 Node js在mysql中使用数组更新多行