课外天地 李树青学习天地JavaEE网站开发课件 → 事务管理的基本用法


  共有13949人关注过本帖树形打印复制链接

主题:事务管理的基本用法

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
事务管理的基本用法  发帖心情 Post By:2009/4/14 19:27:04 [只看该作者]

事务管理
import java.sql.*;

public class exec
{
        public static void main(String [] args)
        {
                Connection con;
                Statement stm;
                ResultSet res;
                try
                {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                
                        con = DriverManager.getConnection("jdbc:odbc:StuSQL");
                        con.setAutoCommit(false);
                        stm=con.createStatement();              
                
                        String upd = "update stu set height=height+0.01";
                        stm.executeUpdate(upd);
                        con.commit();
                        con.setAutoCommit(true);
                        con.close();
                }
                catch(Exception ex)
                {}
        }
}
说明:
1)通过con.setAutoCommit(false)设置自动提交方式(默认)为不允许,此时可以通过con.commit()或者程序结束自动提交。
2)旧版本的mysql如要将表支持事务处理,可以type=BDB(max版的数据库,非normal),如
create table customer(a int, b char(20)) type=BDB;
3)使用addBatch和executeBatch等批处理更新语句可以提高性能,如:
import java.sql.*;

public class exec
{
        public static void main(String [] args)
        {
                Connection con;
                Statement stm;
                ResultSet res;
                try
                {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                        
                        con = DriverManager.getConnection("jdbc:odbc:StuSQL" );
                        con.setAutoCommit(false);
                        stm=con.createStatement();              
                        
                        String upd1 = "update stu set height=height+0.01";
                        String upd2 = "update stu set height=height+0.02";
                        stm.addBatch(upd1);
                        stm.addBatch(upd2);
                        
                        stm.executeBatch();
                        con.commit();
                        con.setAutoCommit(true);
                        con.close();
                }
                catch(Exception ex)
                {}
        }
}

[此贴子已经被作者于2010-12-12 10:57:21编辑过]

 回到顶部