您的位置:首页 > 其它

JDBC事物处理——保持数据一致性案例

2015-12-19 21:44 323 查看
MySQL默认操作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。

package JDBCTest2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCtest1 {
public static Connection getconnection(){
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest1","root","");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void inserSql1(Connection conn) throws SQLException{

String sql="insert into tbl_address(id,city,country,user_id) values"+
"(3,'shanghai','china',3)";
Statement st=conn.createStatement();
int count=st.executeUpdate(sql);
System.out.println("insert"+" " +count+" "+"sqls");
}
public static void inserSql2(Connection conn) throws SQLException{

String sql="insert into tbl_user(id,name,password,email)values"+
"(9,'xiaoming','123456','xiaoming@gmail.com')";
Statement st=conn.createStatement();
int count=st.executeUpdate(sql);
System.out.println("insert"+" " +count+" "+"sqls");
}
public static void main(String[] args) {
Connection conn =null;
conn=getconnection();
try {
conn.setAutoCommit(false);
inserSql1(conn);
inserSql2(conn);
conn.commit();
System.out.println("commit");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Catch the Exceptions");
try {
conn.rollback();
System.out.println("rollback");
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: