SQL错误:“-”或附近的语法错误位置:43

时间:2018-08-02 09:27:56

标签: java postgresql jdbc syntax-error

我正在制作一个Java程序,该程序生成随机数据并填充PostgreSQL数据库。我是程序的开始,以下代码实际上是向表public.bank_card_people添加一行(不是随机生成)的部分。该表的列是名字,姓氏和卡号。当我实现从表中打印行时,与数据库的连接是有效的。

public static void main(String[] args) {
    try{
        Class.forName("org.postgresql.Driver");
        Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Benerator","postgres","newPassword");
        String SQL = "insert into public.bank_card_people (first-name, last-name, card-number) VALUES (?,?,?)";
        PreparedStatement stmt2 = con.prepareStatement(SQL);
        stmt2.setString(1, "ra");
        stmt2.setString(2, "ra");
        stmt2.setString(3, "ra");
        stmt2.executeQuery();

我运行了程序,并显示错误ERROR: syntax error at or near "-"Position: 43

如果找到解决方案,我会及时通知您!

2 个答案:

答案 0 :(得分:2)

对于PostgreSQL,在您的字段周围使用“名字”

因此,SQL将是

String SQL = "insert into public.bank_card_people (\"first-name\", \"last-name\", \"card-number\") VALUES (?,?,?)"

答案 1 :(得分:0)

自从我使程序开始工作以来,我一直在回答我的问题,希望对您有所帮助。

实际上,问题很简单,我只是更改了public.bank_card_people中的列名,因为SQL似乎不喜欢它。我基本上删除了“-”,例如,名字将变为名字,姓氏将变为姓氏。