如何在jsp中使用 事务???

SJLPY 2004-09-07 02:07:02
做了一个购物车,用了HashMap,现在要把HashMap中的数据存入数据库,因为是多条记录,应该会用到事务,请高手给个例子说明一下怎么使用多些50分相送。
...全文
191 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
transcendself 2004-09-08
  • 打赏
  • 举报
回复
这些代码不知道对你有没有帮助
/**
* 功能:
* 设置是否自动提交 arg = true 自动提交, arg = false 不自动提交
* @return boolean
*/
public boolean setAutoCommit(boolean arg)
{
try
{
connection.setAutoCommit(arg);
}
catch (Exception e)
{
System.out.println("设置是否自动提交出现如下异常:" + e.getMessage());
}
return isConnection;
}

/**
* 功能:
* 提交数据
*/
public void commit()
{
try
{
connection.commit();
}
catch(Exception e)
{
System.out.println("提交数据出现如下异常:" + e.getMessage());
}
}

/**
* 功能:
* 回滚数据
*/
public void rollback()
{
try
{
connection.rollback();
}
catch(Exception e)
{
System.out.println("回滚数据出现如下异常:" + e.getMessage());
}
}

}
形印声传 2004-09-07
  • 打赏
  • 举报
回复
写数据库时当然要用到数据库处理bean(类),在这个类里添加事务控制功能即可。
给你个例子:
=======================
p.put(Context.PROVIDER_URL, "iiop://localhost:2809/");
try
{
Context IC_ictx = new InitialContext(p);
DataSource DS_ds = (DataSource)IC_ictx.lookup(ParamInfo.getOraDB());
//连接到数据库
//DataSource DS_ds = (DataSource)IC_ictx.lookup("jdbc/jettdb");
traceLog.Trace("DS_ds=" + DS_ds);
Con_con = DS_ds.getConnection();
Con_con.setAutoCommit(false);
myconn = Con_con;
traceLog.Trace("Con_con=" + Con_con);
return Con_con;
}
catch(Exception sqlE)
{
traceLog.Trace( "DBOpt.Connection():" + sqlE.toString() );
return null;
}
....
===============================
关键是Con_con.setAutoCommit(false);这句,数据库自动提交设置为false

在执行sql语句的时候,成功则执行commit()方法,失败或者捕获到异常,就执行rollback()方法。这样就完成了一个简单的事务控制。

wangnewton 2004-09-07
  • 打赏
  • 举报
回复
关注:)

帮你顶

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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