我正在尝试使用以下代码插入数据库
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
答案 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)
查看准备好的声明格式&如何使用它。