我试图进入一个名为services的表,它有一个id,service_name和service_type。我尝试运行它时出错。
public void insertService(String service, String serviceType) {
try {
st = myConn.createStatement();
String query = "INSERT INTO services"
+"(service_name, service_type)"
+"values(?,?)";
PreparedStatement preparedStmt = myConn.prepareStatement(query);
preparedStmt.setString(1, service);
preparedStmt.setString(2, serviceType);
st.executeUpdate(query);
} catch(Exception e) {
System.out.println("Cannot Add service" + e);
}
}
答案 0 :(得分:1)
myConn似乎没有被定义。
Connection myConn = DriverManager.getConnection(url,user, password);
编辑1
也许是因为你在没有值的情况下执行查询?
st.executeUpdate(query);
与preparedStmt.executeUpdate()
编辑2
myConn似乎没有被定义。
Connection myConn = DriverManager.getConnection(url,user, password);
忽略这一点。答案是在第一次编辑中。
答案 1 :(得分:1)
您在多个地方的查询中缺少空格。尝试:
String query = "INSERT INTO services "
+"(service_name, service_type) "
+"values(?,?)";
始终建议在将查询放入代码之前手动运行查询,以验证它在语法上是否正确/有效。
答案 2 :(得分:1)
正如您所提到的,错误是MySQLSyntaxErrorException。您应该查看生成的SQL查询。
使用以下查询
String query = "INSERT INTO services "
+"(service_name, service_type) "
+"values(?,?)";
每行双引号之前的空格