相关疑难解决方法(0)

由于在MySQL中使用保留字作为表或列名称而导致语法错误

我正在尝试执行一个简单的MySQL查询,如下所示:

INSERT INTO user_details (username, location, key)
VALUES ('Tim', 'Florida', 42)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便'key) VALUES ('Tim', 'Florida', 42)'在第1行附近使用正确的语法

我该如何解决这个问题?

mysql reserved-words

48
推荐指数
1
解决办法
13万
查看次数

Hibernate通过JDBC语句执行DDL时出错

我真的需要帮助,我搜索了我在stackoverflow上发现的所有问题,但没有任何作用.我之前从未使用过hibernate而且我不知道我做错了什么.
这是我的存储库:https ://github.com/ionutincau/test_db

我收到此错误:

"C:\Program Files\Java\jdk1.8.0_111\bin\java" "-javaagent:E:\Applications\IntelliJ\IntelliJ IDEA Community Edition 2017.1\lib\idea_rt.jar=50372:E:\Applications\IntelliJ\IntelliJ IDEA Community Edition 2017.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_111\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\rt.jar;C:\Users\ionut\IdeaProjects\test_db\out\production\test_db;C:\Users\ionut\IdeaProjects\test_db\lib\mysql-connector-java-5.1.41-bin.jar;C:\Users\ionut\IdeaProjects\test_db\lib\hibernate-core-5.2.9.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\antlr-2.7.7.jar;C:\Users\ionut\IdeaProjects\test_db\lib\classmate-1.3.0.jar;C:\Users\ionut\IdeaProjects\test_db\lib\dom4j-1.6.1.jar;C:\Users\ionut\IdeaProjects\test_db\lib\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\jandex-2.0.3.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\javassist-3.20.0-GA.jar;C:\Users\ionut\IdeaProjects\test_db\lib\jboss-logging-3.3.0.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\jboss-transaction-api_1.2_spec-1.0.1.Final.jar;C:\Users\ionut\IdeaProjects\test_db\lib\hibernate-jpamodelgen-5.2.9.Final.jar" Main
Apr 03, 2017 9:05:50 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.9.Final}
Apr 03, 2017 9:05:50 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Apr 03, 2017 9:05:51 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate jdbc

27
推荐指数
4
解决办法
7万
查看次数

我们应该在数据库表命名约定中使用前缀吗?

我们正在决定工作开发团队的表,列,程序等的命名约定.单数复数表命名已经确定,我们使用单数.我们正在讨论是否为每个表名使用前缀.我想阅读有关使用前缀的建议,以及原因.

它是否提供任何安全性(对于可能的入侵者至少还有一个障碍)?我认为用前缀命名它们通常会更舒服,以防我们在代码中使用表名,所以不要将它们与变量,属性等混淆.但我想阅读更有经验的开发人员的意见.

sql database naming-conventions

11
推荐指数
3
解决办法
9763
查看次数

使用`type`作为数据库列名

在新数据库表中命名列时遇到的一个常见问题是用于对子类型进行分类的正确名称。最自然的列名称通常是type,但是我尽量避免在命名中使用SQL关键字或保留字

我知道在MySQLPostgres中这type都是一个保留关键字,因此我可以使用它,但是应该吗?

当前type用作列名的最佳做法是什么?是否有一个同义词如此广泛地等同,以至于使用它就有意义了?

多年来,我花了很多时间来尝试选择其他名称,在过去一周的讨论中,这两次出现,所以我想看看是否有明确的共识?

万一它对其他人有帮助,我过去用来解决这个问题的一些替代方法包括:

  • type_of
  • class
  • category
  • subtype
  • kind

mysql sql postgresql

7
推荐指数
2
解决办法
3089
查看次数

不要在web应用程序spring mvc + jpa + postgreSQL中获取所有用户对象

我使用spring MVC,JPA,postgreSQL开发Web应用程序

这是一些代码:

文件:user.java

@Entity
@Table(name = "USER")
public class User implements Serializable{
    private Long id;
    private String name;
    private DateTime birthDate;
    private String address;
    private String email;
    private String phone;
    private String username;
    private String password;
    private boolean isActive;
    private String lastModifiedPerson;
    private DateTime createdDate;
    private DateTime lastModifiedDate;
    private int version;

    private Set<Role> roles = new HashSet<Role>();
    private Set<Entry> entrys = new HashSet<Entry>();
    private Set<EntryComment> comments = new HashSet<EntryComment>();



    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="ID")
    public Long getId() {
        return …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-mvc

3
推荐指数
1
解决办法
3547
查看次数

Postgres DDL 错误:''user' 处或附近的语法错误'

我正在尝试使用 postgres 数据库设置 Spring Boot 项目。我的实体是:-

用户

@Entity
public class User implements UserDetails {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id", nullable = false, updatable = false)
    private Long id;
    private String username;
    private String password;
    private String firstName;
    private String lastName;

    @Column(name="email", nullable = false, updatable = false)
    private String email;
    private String phone;
    private boolean enabled=true;


    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JsonIgnore
    private Set<UserRole> userRoles = new HashSet<>();

    public Long getId() {
        return id;
    }
    public void setId(Long …
Run Code Online (Sandbox Code Playgroud)

postgresql spring-data-jpa spring-boot

3
推荐指数
1
解决办法
3077
查看次数