jdbc中的insert语句中的错误

时间:2013-12-09 06:01:06

标签: java sql jdbc

我正在尝试使用以下代码插入数据库

try{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:ProductDSN";
Class.forName(driver);
Connection con = DriverManager.getConnection(url);
System.out.println("Connection established");
System.out.println("clear point 1");
String sql  = "INSERT INTO product
(id,productName,category,price,availability,quantity,description)
VALUES('ID','name','catag','price','avail','quantity','discript')";
System.out.println("clear point 2");
PreparedStatement stmt = con.prepareStatement(sql);
System.out.println("clear point 3");
stmt.executeUpdate();
System.out.println("clear point 4");

JOptionPane.showMessageDialog(null, "Record Save Successfully");

if (con != null)
  stmt.close();
con.close();
System.out.println("Connection Closed");
}
catch(SQLException sqle)
{
  System.err.println("Error is in save method");
  System.err.println(sqle);
}

以下是编译中的错误..

Connection established
clear poitn 1
clear point 2
clear point 3
Error is in save method
java.sql.SQLException: General error

3 个答案:

答案 0 :(得分:2)

您对准备好的陈述感到困惑。

  

用于设置IN的setter方法(setShort,setString等)   参数值必须指定与之兼容的类型   定义了输入参数的SQL类型。例如,如果IN   参数有SQL类型INTEGER,那么应该使用方法setInt。

所以请尝试

String sql  = "INSERT INTO product
(id,productName,category,price,availability,quantity,description)
VALUES(?,?,?,?,?,?,?)";

stmt.setInt(1, value)// for Integer where 1 is the index
stmt.setString(2, value)// for string where 2 is the index
.....

最后,

stmt.executeUpdate();

答案 1 :(得分:0)

sql异常意味着错误是int SQL查询。 在查询浏览器上单独检查您的SQL查询。 检查是否已将所有属性数据类型赋予String .. 您已将值插入为Strings..price,id等..

检查db中是否也使用相同的字符串格式.. plz提供错误显示,所以我可以帮助你更多..

答案 2 :(得分:0)

查看准备好的声明格式&如何使用它。