JDBC 事务

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcTransaction {

 public static void main(String[] args) throws SQLException{
  
  String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
  String user="root";
  String pass="password";
  String sql=null;
  Connection conn=getConnection(url, user, pass);
  conn.setAutoCommit(false);
  
  try{
   sql="insert into tx(id,num) values(103,103)";
   PreparedStatement st=conn.prepareStatement(sql);
   st.execute(sql);
   
   sql="select * from tx where id=?";
   st=conn.prepareStatement(sql);
   st.setInt(1, 103);
   ResultSet rs=st.executeQuery();
   while(rs.next()){
    int id=rs.getInt(1);
    int num=rs.getInt("num");
    System.out.println("id="+id+ " num="+num);
   }
   rs.close();
   st.close();
  }catch(SQLException e){
   e.printStackTrace();
   System.out.println("********");
   conn.rollback(); //事务回滚
  }
  
  conn.commit();//事务提交
  conn.close();
  System.out.println("********");
 }
 
 public static Connection getConnection(String url,String user,String password)throws SQLException{
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
  Connection conn=DriverManager.getConnection(url, user, password);
  return conn;
 }

}

猜你喜欢

转载自zw7534313.iteye.com/blog/2215567