sql Java problemDatabase语法错误位于或接近“:”
我使用的是PostgreSQL数据库,当我试图插入数据时,它会给我一个错误问题database error:error syntax error at or near:“Position 206”
以下是插入查询的代码:
public static Model_Customer Insert(String FName, String LName, String Registration, String Make, String Model, String Engine, String Year, String Mileage, String Type, String Date, String Time) throws Exception {
try{
Statement stmt = Model_Customer.conn.createStatement();
ResultSet rs = stmt.executeQuery("INSERT INTO appointment (fname, lname, registration, make, model, engine, year, mileage, type, date, time) VALUES ("+FName+",'"+LName+"','"+Registration+"','"+Make+"','"+Model+"','"+Engine+"','"+Year+"','"+Mileage+"','"+Type+"','"+Date+"',"+Time+") RETURNING appointmentid");
if(rs.next())
return Model_Customer.QueryID(rs.getInt(1));
}catch(Exception e){
throw new Database_Exception(e.getMessage());
}
return null;
}
在Debug中,它可以进入executeQuery,然后直接进入catch异常并给出一个错误。数据库中的表和列都在那里。代码中没有“:”除了消息,所以我不知道为什么会这样
谢谢你的回答Joop Eggen我用了你的方式,不得不添加
stmt。executeUpdate();
工作得很有魅力!谢谢
# 1 楼答案
JDBC提供了一种独立于数据库引擎的方式来检索生成的键:一个插入行的结果集,每行包含生成的键
RETURN_GENERATED_KEYS
可能不需要。一些字段名可能是reserved key words,然后需要在其周围加上双引号关于推荐准备好的声明:
每个
...+var+...
解释语句的第一句话是:使用一个带有... ? ...
的准备好的语句。有两个非常重要的原因(除了一个有准备的州的效率和使用BLOB):'
),撇号转义、反斜杠等等都可以完成,你可以传递类型安全参数(int、java.sql.Date)李>