-- 作者: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编辑过]
|