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;
}
}