JDBC--这段修改语句显示执行成功,但是数据库的数据并没有改变,求指教

DONG_HAO1208 2013-09-22 11:06:43
public int[] updates(int[] nums) throws SQLException, ClassNotFoundException{
link();
String sql="update grade set gradeid=gradeid+1 where gradeid=?";
pstmt=con.prepareStatement(sql);
for (int i = 0; i < nums.length; i++) {
pstmt.setInt(1,nums[i]);
pstmt.addBatch();
}
int[] num=pstmt.executeBatch();
close();
return num;

}
public static void main(String[] args) throws ClassNotFoundException, SQLException {
int[] nums={93,21};
StusDao sd=new StusDao();
int[] num=sd.updates(nums);
System.out.println(num);
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}

}
...全文
1098 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2013-09-22
  • 打赏
  • 举报
回复 3
楼主你先检查下你connection的autoCommit是否是false,如果是false,增删改的语句不进行conn.commit()是不会提交到数据库的
DONG_HAO1208 2013-09-22
  • 打赏
  • 举报
回复
int[] num=pstmt.executeBatch(); 这句就是执行SQL语句的啊 我这句在pl/sql里可以执行,应该没问题吧
NachOS4_1 2013-09-22
  • 打赏
  • 举报
回复
你的sql语句写错了啊 ,String sql="update grade set gradeid=gradeid+1 where gradeid=?"; 这个根本就没有执行
DONG_HAO1208 2013-09-22
  • 打赏
  • 举报
回复
是的,link()是我自己写的一个方法
DONG_HAO1208 2013-09-22
  • 打赏
  • 举报
回复
谢谢大家,找到原因了,是因为数据库中有部分数据没提交
NachOS4_1 2013-09-22
  • 打赏
  • 举报
回复
你执行之前有没有建立数据库连接的?????这个link();是建立连接的?????
DONG_HAO1208 2013-09-22
  • 打赏
  • 举报
回复
加了commit()还是不行,之前不用批处理执行还有效的,我再研究研究,谢谢你啦

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧