事务管理
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编辑过]