为了账号安全,请及时绑定邮箱和手机立即绑定

还想请教下事务在jsp中怎么写?

还想请教下事务在jsp中怎么写?

森栏 2023-03-13 16:12:06
jsp连接数据库把executeUpdate()语句写在bean中怎么写?要能返回int值,根据int值判断操作是否成功。
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

public static int executeUpdate(String sql/*,String[] parameters*/)
{
int result=0;
try
{
ct=getConnection();
ps = ct.prepareStatement(sql);

/* if(parameters!=null)
{
for(int i=0;i<parameters.length;i++)
{
ps.setString(i+1,parameters[i]);
}
}*/
result=ps.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();//开发阶段
//抛出异常
//可以处理,也可以不处理
throw new RuntimeException(e.getMessage());
}
finally
{
close(rs,ps,ct);
}
return result;
}
//事务

try{
conn=DriverManager.getConnection("..."); //链接数据库
 conn.setAutoCommit(false);//禁止自动提交事务
String sql1 = "update useraccount set monery=monery-1000 where
name='usename'";
 String sql2 = "update sysaccount set monery=monery+1000 where
name='sysname'";
int result1=server.executeUpdate(sql1);
int result2=server.executeUpdate(sql2);
if(result1>0&&result2>0)
{
conn.commit(); //统一提交。
}
}catch(SQLException e){
  conn.rollback();
//倘若其中一项sql操作失败,就不会执行commit()方法,而是产生相应的sqlexception,此时就可以捕获异常代码块中调用rollback()方法撤消事务。
  e.printStackTrace();
 }
 finally{
  if(stmt!=null){
   stmt.close();
  }
  if(conn!=null){
   stmt.close();
  }


查看完整回答
反对 回复 2023-03-15
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信