今天晚上写了一个Java关于Mysql数据库的事物处理类,实现回滚&&部分回滚功能。
Mysql5很好的支持了事物处理功能。不过支持这个功能的只有两种表类型。
分别是BDB,InnoDB。
先建立一个表,名为Kiss,数据为id (int),name(varchar),pop(varchar)。
下面是源码:
执行第一次执行这个类,id如果不冲突,就可以顺利插入数据,第二次插入,id冲突,则实现回滚。
下面是部分回滚:
<!---->
import java.sql.*;
public class TestSavepoint{
public static void main(String args[]){
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/kiss";
conn=DriverManager.getConnection(url,"username","password");
boolean autoCommit=conn.getAutoCommit();
//关闭自动提交功能
conn.setAutoCommit(false);
Statement stmt=conn.createStatement();
stmt.executeUpdate("insert into sun values(21,'Hello','Beijing')");
stmt.executeUpdate("insert into sun values(22,'Hi','shanghai')");
Savepoint sp1=conn.setSavepoint("p1");
stmt.executeUpdate("insert into sun values(25,'shiyang','xingtai')");
Savepoint sp2=conn.setSavepoint("p2");
stmt.executeUpdate("insert into sun values(60,'shiyang','baoding')");
ResultSet rs=stmt.executeQuery("select avg(id) from sun");
rs.next();
double avg_id=rs.getDouble(1);
if(avg_id>100){
conn.rollback(sp1);
}else if(avg_id>30){
conn.rollback(sp2);
}
conn.commit();
rs=stmt.executeQuery("select * from sun");
while(rs.next()){
System.out.print(rs.getInt(1));
System.out.print("\t"+rs.getString(2).trim());
System.out.println("\t"+rs.getString(3));
}
rs.close();
stmt.close();
}catch(Exception e){
System.out.println("Failure.rollback!!!");
try{
conn.rollback();
}catch(Exception e1){
e1.printStackTrace();
}
e.printStackTrace();
}finally{
try{
if(conn!=null){
conn.close();
}
}catch(Exception e1){
e1.printStackTrace();
}
}
}
}
代码测试通过,完美运行。
施杨出品!!!
分享到:
相关推荐
java代码-使用java解决数据库事务处理的源代码 ——学习参考资料:仅用于个人学习使用!
Java+Web项目企业事务管理系统源码 (1)Java源码 解压密码https://hao.360.cn/?src=lm&ls=n527fd66b97
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
Java Web项目企业事务管理系统源码,详细的代码注释 本系统的开发工具具体如下。 ● 系统开发平台:MyEclipse 6.5。 ● 数据库管理系统软件:MySQL 5.0。 ● 运行平台:Windows 2000/Windows XP/Windows 2003/...
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码Java企业日常事务管理系统论文+源码...
Java+Web项目企业事务管理系统源码Java实用源码整理learns
Java+Web项目企业事务管理系统源码源码整理
Java+Web项目企业事务管理系统源码
嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于...
本系统使用数据库Mysql数据库,基于Tomcat开发,使用java版本jdk8
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
eb 博文链接:https://holdbelief.iteye.com/blog/216627
内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...
基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统源码基于SSM的班级事务管理系统...
企业事务管理系统源码,可用于OA,Java,jsp开发,亲测可用
《 疯狂Java实战演义》以15个生动的Java案例,引领读者体验Java开发的乐趣。书中使用Java的Swing技术开发了若干个游戏,从这些游戏中可以了解到,Java一样可以做出优秀的游戏和应用程序。本书知识点丰富,适合有一定...