我在java(使用NetBeans)中创建了一个项目,用于在MySQL中的表A
中插入数据。
表A具有主键pID,它有11列,但表A
必须是表B
的外键。当我尝试在MySQL中的表A
中插入一行时,它会工作。插入行。
但是,当我尝试在java中插入一行(使用我在MySQL中创建的过程usp_em
;它不涉及自动增量列)它不起作用。
我以这种方式调用程序:
CallableStatement cs = conn.prepareCall("call usp_em(?,?,?,?,?,?,?,?,?)");
所以我不明白为什么我可以直接在MySQL中插入一行,而不是从java中插入一行? MySQL JDBC驱动程序也用作库!
答案 0 :(得分:1)
您必须将您的程序置于{}
之间,例如:
String query = "{call usp_em(?,?,?,?,?,?,?,?,?)}";
//--------------^------------------------------^
CallableStatement statement = connection.prepareCall(query);
statement.setString(1, param1);
statement.setString(2, param2);
statement.setString(3, param3);
...
statement.execute();