搜了一下,好多人都沒找到關鍵點。我分享一下我的解決方法:
public class StuDao {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Stu s = new Stu();
s.setName("liu");
s.setSex("女");
s.setAge(55);
insert(s);
}
public static int insert(Stu s) throws SQLException, ClassNotFoundException {
Connection con = DBLink.getCon();
//System.out.println(con);
String str="insert into students (id, name,sex,age) values ( stu_seq.nextval,?,?,?)";
//預處理 PreparedStatement 馬上可以執行了,先通過連接,把要執行的sql執行
/*
* ?是佔位符從序號1開始 ?賦值要在executeUpdate()之前完成
* */
PreparedStatement ps = con.prepareStatement(str);
ps.setString(1,s.getName());
ps.setString(2,s.getSex());
ps.setInt(3,s.getAge());
int i=ps.executeUpdate(str);//當 返回值是1時,執行成功.
System.out.println(i);
return 0;
}
}
運行結果:
其實錯誤很簡單,不過我也找了很久
只要把 int i=ps.executeUpdate(str); 改爲 int i=ps.executeUpdate();