Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
admin 发表于: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编辑过]
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .01563 s, 2 queries.