package qddx .jdbc ; import java .sql .* ; public class usetransaction { public static void main(string[] args) { // todo auto-generated method stub connection conn = null ; statement st = null ; preparedstatement pst = null ; resultset rs
                package qddx.jdbc;import java.sql.*;public class usetransaction {    public static void main(string[] args) {        // todo auto-generated method stub        connection conn = null;        statement st = null;        preparedstatement pst = null;        resultset rs = null;        savepoint sp = null;        try{        conn = jdbc_connection.getconnection();        //指定事务隔离级别        conn.settransactionisolation(conn.transaction_read_uncommitted);        pst = conn.preparestatement(create table users (id smallint,username text));        pst.execute();        //提交事务        conn.commit();        pst.close();        }catch(sqlexception e){            system.err.println(连接数据库或者建表失败);            system.err.println(事务回滚到回滚点);            try{            conn.rollback();            }catch(sqlexception ex){                //ex.printstacktrace();                system.out.println(回滚失败);            }            try{            conn.setsavepoint();//设置一个存储点            st = conn.createstatement();            st.executeupdate(insert into users values(110,'janes'));//执行更新语句            //st.executeupdate(insert into users values('shibai','janes'));//执行更新语句 失败的例子            conn.commit();//提交事务            conn.releasesavepoint(sp);//释放存储点            st.close();            conn.close();            }catch(sqlexception et){                system.err.println(操作失败);                system.err.println(事务回滚到存储点);                try{                conn.rollback(sp);                st.close();                conn.close();                }catch(sqlexception exc){                    system.out.println(回滚到存储点失败);                    //exc.printstacktrace();;                }                //et.printstacktrace();            }            //e.printstacktrace();        }    }}
   
 
   