1个回答
展开全部
事务处理有两种方法:
第一种:
Connection conn=null;
Statement st=null;
boolean flag=false;
try {
conn=get.getConnMethod4();
st=conn.createStatement();
conn.setAutoCommit(false);
st.executeUpdate(sql1);
st.execute(sql2);
conn.commit();
flag=true;
}catch(SQLException e){
try {
conn.rollback();
} catch (SQLException e1) {
}
e.printStackTrace();
}finally{
try {
if(st!=null)
st.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第二种方法,其实和每一种是一样的,只是不是再用Statement来发送SQL语句,而是用它来增加批处理功能!代码如下!
try
{
stmt=con.createStatement();
con.setAutoCommit(false);
stmt.addBatch(sql1);
stmt.addBatch(sql2);
stmt.addBatch(sql3);
}
catch(Exception e)
{
out.println("数据库操作出错!!!");
}
try
{
stmt.executeBatch();
con.commit();
}
catch(Exception e)
{
con.rollback();
out.println("插入出错!!!");
}
try
{
stmt.close();
con.close();
}
catch(Exception e)
{
out.println("数据库关闭错误");
}
第一种:
Connection conn=null;
Statement st=null;
boolean flag=false;
try {
conn=get.getConnMethod4();
st=conn.createStatement();
conn.setAutoCommit(false);
st.executeUpdate(sql1);
st.execute(sql2);
conn.commit();
flag=true;
}catch(SQLException e){
try {
conn.rollback();
} catch (SQLException e1) {
}
e.printStackTrace();
}finally{
try {
if(st!=null)
st.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第二种方法,其实和每一种是一样的,只是不是再用Statement来发送SQL语句,而是用它来增加批处理功能!代码如下!
try
{
stmt=con.createStatement();
con.setAutoCommit(false);
stmt.addBatch(sql1);
stmt.addBatch(sql2);
stmt.addBatch(sql3);
}
catch(Exception e)
{
out.println("数据库操作出错!!!");
}
try
{
stmt.executeBatch();
con.commit();
}
catch(Exception e)
{
con.rollback();
out.println("插入出错!!!");
}
try
{
stmt.close();
con.close();
}
catch(Exception e)
{
out.println("数据库关闭错误");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询