PreparedStatement.executeUpdate() 和 .execute() 两个方法对于 delete 操作无效

通过OracleJDBC连数据库,PreparedStatement.executeUpdate()和PreparedStatement.execute()两个方法对于d... 通过 Oracle JDBC 连数据库, PreparedStatement.executeUpdate() 和 PreparedStatement.execute() 两个方法对于 delete 语句都无效. 程序跑完, 但是, 数据库中数据还在, 请问是什么原因?

以下是我的代码:
========================================
String sql = "delete from comments where comment_id = ?";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, commentId);
ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
========================================
展开
 我来答
舜醉oI
2017-12-04
知道答主
回答量:1
采纳率:0%
帮助的人:929
展开全部

这个是number或int类型吧!

这个commentId是String?

建议:写成ps.setInt(1,commentId)。保持类型相同,才能找到数据并删除;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
PreparedStatement pstmt = con.prepareStatement(
sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
这事因为prepareStatement方法中的参数 ResultSet.TYPE_SCROLL_SENSITIVE 的原因,对于删除,不管是否敏感,最终都还能显示数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
对于oracle的数据库操作完了之后加一句要加一句commit;
加在finally里面吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式