概述
public class TestTransaction {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testquery?useUnicode=true&characterEncoding=utf8", "root", "lovo");
//当我们需要有多条DML语句一起执行的时候,首先开启事务
con.setAutoCommit(false);//设置自动提交为false
String sql1 = "insert into t_team " +
"(f_teamName,f_teamCountry,f_teamCoach,f_teamNum,fk_groupId) " +
"values(?,?,?,?,?)";
String sql2 = "update t_group set f_groupNum = f_groupNum + 1 " +
"where pk_groupID = ?";
PreparedStatement ps1 = con.prepareStatement(sql1);
PreparedStatement ps2 = con.prepareStatement(sql2);
ps1.setString(1, "龙之队");
ps1.setString(2, "中华人民共和国");
ps1.setString(3, "高洪波");
ps1.setInt(4, 23);
ps1.setInt(5, 2);
ps1.executeUpdate();
ps2.setInt(1, 2);
ps2.executeUpdate();
con.commit();//事务整体提交
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
con.rollback();//事务回滚
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} finally{
if(con != null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
最后
以上就是知性期待为你收集整理的JDBC事务(同时操作数据库多个表)的全部内容,希望文章能够帮你解决JDBC事务(同时操作数据库多个表)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复