【java】写字符界面执行的程序,里面更新数据库:插入记录,为什么明明执行成功,数据库里面却没有数据?

奇怪的是,我用同样的方法在图形界面里写,却可以正常更新,求原因啊!!~~~

第1个回答  2013-01-01
没有提交吧,是不是使用事务没有commit?追问

我直接用的preparedstatement,然后执行executeUpdate(),后面还加了一句输出“插入成功”,但是系统最后那句是执行了啊。。。。。我没有用事务。。。如果中间没有执行,它应该报错啊?

追答

试着加一下commit

追问

能不能,麻烦告诉我怎么写,写哪里?

追答

Connection con = DBConnector.getconecttion(); // 取得一个数据库连接
CallableStatement cst = null;
con.setAutoCommit(false);
String insertSql = "begin insert into TABLE (field_0,field_1) values (value_0,value_1) returning id into ?;end; ";
try {
cst = con.prepareCall(insertSql); //执行存储过程
cst.registerOutParameter(1, Types.INTEGER); //为存储过程设定返回值
int count = cst.executeUpdate(); //得到预编译语句更新记录或删除操作的结果
int id = cst.getInt(1); //得到返回值

System.out.println("成功执行了:" + count + "条数据,其ID值:" + id);
} catch (SQLException e1) {
con.rollback();
con.setAutoCommit(true);
}finally{
con.commit();
con.close();
}

相似回答