import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
public class TransactionTest {
//返回一个mysql的连接
public static Connection getconnect() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db", "root", "");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void insertUser(Connection conn) throws SQLException {
//进行添加操作
String sql = "INSERT INTO tbl_user (id,name,password,email)" + "VALUES(10,'tom','qaz123','tom@126.com')";
Statement statement = (Statement) conn.createStatement();
int count = statement.executeUpdate(sql);
System.out.println("向用户表中添加了" + count + "条记录");
}
public static void insertAddress(Connection conn) throws SQLException {
String sql = "INSERT INTO tbl_address(ID,CITY,COUNTRY,USER_ID)" + "VALUES(1,'bali','faguo',10)";
Statement statement = (Statement) conn.createStatement();
int count = statement.executeUpdate(sql);
System.out.println("向地址表添加了" + count + "条记录");
}
public static void main(String[] args) {
Connection conn = null;
try {
conn = getconnect(); //获得一个连接mysql的连接
conn.setAutoCommit(false); //将数据库事务自动提交设置为false
insertUser(conn);
insertAddress(conn); //执行对数据库的操作,并一下来保持一致性
conn.commit(); //无异常则提交
} catch (Exception e) {
System.out.println("=========捕获到SQL异常========");
e.printStackTrace();
try {
conn.rollback(); //有异常的话进行事务的回滚,把即使执行成功的也进行取消
System.out.println("==========异常回滚成功==========");
} catch (Exception e2) {
e2.printStackTrace();
}
} finally {
try {
if (conn != null)
conn.close(); //关闭连接
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
JDBC进行mysql数据库操作并保持事务的一致性
最新推荐文章于 2023-06-23 14:59:05 发布