我正在制作一个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
如果找到解决方案,我会及时通知您!
答案 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似乎不喜欢它。我基本上删除了“-”,例如,名字将变为名字,姓氏将变为姓氏。