java更新数据库错误就回滚_Java 中对数据库操作时的 回滚

Connection conn=null;

conn.rollback()就可以回滚

//用jdbc连接数据库

//举例子,比如你在写一个级联删除的方法的时候,为了保证数据完整性,删除的时候一定要确定该删的都删了才行,否则就要回滚,下面是删除方法的例子:

public boolean delete(int sID) {//成功删除会返回true;

dbc = new DataBaseConnection();//根据你自己的方式创建数据库的连接

Connection con = dbc.getConnection();//得到Connection

try {

con.setAutoCommit(false);// 更改JDBC事务的默认提交方式,默认是true,是自动提交;

dbc.executeUpdate("delete from xiao where ID=" + sID);//删除

dbc.executeUpdate("delete from xiao_content where ID=" + sID);//删除

dbc.executeUpdate("delete from xiao_affix where bylawid=" + sID);//删除

con.commit();//提交JDBC事务,如果没问题,这时才真正的删除了;

con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式,这是个好习惯;

dbc.close();//关闭连接

return true;//删除成功

}

catch (Exception exc) {

con.rollBack();//回滚JDBC事务,出现异常,为保证数据完整性,此次操作回滚,不删除;

exc.printStackTrace();//输出异常信息;

dbc.close();//关闭连接

return false;//删除失败

}

}

//顺便说一下,java中JDBC的事务管理,跟你用的是什么数据库没关系,用什么数据库都是这样;

//做添加操作

Connection con = null;

PreparedStatement ps = null;

ResultSet rs = null;

String tableName = args[0];

Integer id = JdbcUtil.parseInt(args[1]);

String name = args[2];

String command = args[3];

try{

con = JdbcUtil.getConnection();

con.setAutoCommit(false);

String sql = "insert into "+tableName+

" values(?,?)";

ps = con.prepareStatement(sql);

ps.setInt(1,id);

ps.setString(2,name);

ps.executeUpdate();

con.commit();//手动提交

}catch(Exception e){

System.out.println(e.getMessage());

try{

con.rollback();//手动回滚

}catch(Exception ex){

System.out.println(ex.getMessage());

}

}finally{

JdbcUtil.close(rs,ps,con);

}

//做修改操作

try {

conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=JavaDB;Password=javadb;DatabaseName=northwind);

//点禁止自动提交,设置回退

conn.setAutoCommit(false);

stmt = conn.createStatement();

//数据库更新操作1

stmt.executeUpdate(“update firsttable Set Name='testTransaction' Where ID = 1”);

//数据库更新操作2

stmt.executeUpdate(“insert into firsttable ID = 12,Name = 'testTransaction2'”);

//事务提交

conn.commit();

}

catch(Exception ex) {

ex.printStackTrace();

try {

//操作不成功则回退

conn.rollback();

}

catch(Exception e){

e.printStackTrace();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IIS 权限错误(401.1 401.2 401.3)解决办法

1、错误号401.1 症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。 分析: 由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。 解决方案: &a…

基本配置1-被忽悠进了CentOS 6

原来的ubuntu因为一块硬盘坏了而整个无法正常使用,只好重装。但同事介绍使用Redhat,说单位的linux服务器多为redhat,也没多想,就上了,用了之后才发现,有不少习惯需要改变。有几个配置琢磨了才整出来&#x…

真烧脑!60种小学奥数分类题型大汇编!做了几道题,感觉身体被掏空……

全世界只有3.14 % 的人关注了爆炸吧知识很多的家长都在问:小学奥数怎么学?有哪些重点?需要大量练习吗?其实,数学的题型万变不离其宗,了解题型,领悟题目的思路方法,一定胜过盲目狂练5…

保护我方Id | ASP.NET Core Web API使用加密Id

前言上次,我们介绍了hashids.net,可以将数值型Id加密成无意义的字符串,但是通过这些字符串又可以反向映射出真实的Id以供内部使用。比如B站的播放链接https://www.bilibili.com/video/BV1xK4y1VXXX应该就是这种实现方式。但是,我们…

用java写注册表单_利用HTML表单标签编写一个注册页面

今天我们来写一个注册页面form表单先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构:页面结构大体就是这样子的~利用HTML表单标签编写一个注册页面表单标签:所有需要提交到服务器端的表单项必须使用包起来~form标签的属性:action:整个表单提交的位置(可以是一个页…

odm操作指南

odm操作指南 odm是由一组对象类和对象所组成的数据库。对象类相当于oracle数据库中的table,由odmcreate创建,删除可以使用odmdrop,对象就相当于table中的row或叫记录,可以使用odmadd命令加入对象,使用odm delete命令删…

蓝桥杯java龟兔赛跑_算法-蓝桥杯习题(一)

1 /*2 基础练习 十六进制转八进制34 问题描述5 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。6 输入格式7 输入的第一行为一个正整数n (1<n<10)。8 接下来n行&#xff0c;每行一个由0~九、大写字母A~F组成的字符串&#xff0c;表示要转换的十六进制正整数&…

我被Dapr点燃

Dapr的热度个人认为才刚刚热起来&#xff0c;9月份我写了Dapr .NET Core实战一共10篇&#xff0c;从基础概念到简单的实战&#xff0c;但是有很多人感兴趣&#xff0c;具体表现在我个人维护的QQ群&#xff0c;人数从80人左右&#xff0c;增加到了155&#xff0c;将近增加了1倍…

学习Asp.net MVC相关资料

1. 微软官方网站 http://www.asp.net/mvc/tutorials 2. 博客园教程页面 http://kb.cnblogs.com/zt/mvc/转载于:https://www.cnblogs.com/donlxn/archive/2012/04/16/2452872.html

Http Only Cookie保护AccessToken

【导读】JWT认证方式目前已被广泛使用&#xff0c;一直以来我们将token放在请求头中的Authorization中&#xff0c;若通过此种方式&#xff0c;一旦token被恶意窃取&#xff0c;攻击者可肆意对用户可访问资源进行任意索取我们大多都是通过登录成功后&#xff0c;响应AccessToke…

java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...

匿名用户1级2015-06-06 回答楼主你好&#xff0c;先说一下我对这道题目的认识吧。1、输入10个数&#xff0c;一次按顺序插入。核心考察的应该是2点1) 给定一个数组和一个整数n&#xff0c;找到这个数应该插入的位置。2) 插入这个数&#xff0c;其实就是从这个位置往后的所有元素…

当女朋友生气了而你却没发现 !!!

1 当女朋友生气了而你却没发现。。诶&#xff0c;你咋不吃呢&#xff1f;2 会说话的尾巴。。尾巴&#xff1a;人呢&#xff01;&#xff01;3 小树枝&#xff1a;生命中不能承受之重&#xff01;心疼小树枝&#xff01;4 土耳其冰淇淋小哥终于被反杀了&#xff01;天道好轮…

【转载】 quartus中调用modelsim仿真的方法

http://blog.sina.com.cn/s/blog_4b2a5d8401000910.html http://hi.baidu.com/asin28/blog/item/c4c1218d8ecd51c0fc1f104d.html/cmtid/20f1d8cd7339c810be09e6b5 转载于:https://www.cnblogs.com/mrightt/archive/2011/05/08/2040417.html

弱引用什么时候被回收_Java基础 强引用、弱引用、软引用、虚引用

前言在ThreadLocal源码中&#xff0c;其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc。Java中提供这四种引用类型主要有两个目的&#xff1a;第一是可以让程序员通过代码的方式决定某些对象的生命周期&#xff1b;第二是有利于JVM进行垃圾回收。强引用(StrongReference)…

再译《A *路径搜索入门》之四

2019独角兽企业重金招聘Python工程师标准>>> ■在A *方法总结 Summary of the A* Method 好了&#xff0c;现在你通过解释已经走了&#xff0c;让我们奠定了一步一步的方法&#xff0c;在同一个地方&#xff1a; Okay, now that you have gone through the explanat…

记一次 .NET 某电商定向爬虫 内存碎片化分析

一&#xff1a;背景 1. 讲故事上个月有位朋友wx找到我&#xff0c;说他的程序存在内存泄漏问题&#xff0c;寻求如何解决&#xff1f; 如下图所示&#xff1a;从截图中可以看出&#xff0c;这位朋友对 windbg 的操作还是有些熟悉的&#xff0c;可能缺乏一定的实操经验&#xff…

php 合成图片 透明,2020-05-19 php实现透明png多图合成

图片合成的流程一般是&#xff0c;获取图像资源——合成——输出。png图片&#xff0c;一般就用imagecreatefrompng()获取资源。不过这个资源获取后是有白底的。所以需要用imagesavealpha()进行图像处理&#xff0c;得到包含有透明背景的图像。//原始图像$dst "img/1.png…

一个古怪的VISTA网络问题解决的坎坷经历

今天下午BOSS突然找我&#xff0c;说他的笔记本无线网络今天频繁的掉线&#xff0c;问我到底是怎么回事&#xff0c;我初步估计是TPLink无线路由器的连接数过多造成&#xff0c;也就这么说了&#xff0c;BOSS马上生气的说&#xff0c;把其他无线用户都T了&#xff0c;让他上网干…

ArcEngine 没有Esri.ArcGis.GeoAnalyst 命名空间

http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid69977&extrapage%3D1&ordertype1 AE安装的时候分为Core和Extension. Esri.ArcGis.GeoAnalyst位于Extension里面. (1)确保安装的时候是完全安装 (2) 转载于:https://www.cnblogs.com/imihiroblog/archive/2012/04/1…

微信功能“拍一拍”,都有谁在“拍”你?

全世界只有3.14 % 的人关注了爆炸吧知识微信新功能总在悄咪咪更新&#xff0c;“拍一拍”一出&#xff0c;很多小伙伴都会收到各种群里面千奇百怪的“拍一拍”&#xff0c;到底都是谁在偷偷关注你&#xff1f;真正决定人与人之间的差距的&#xff0c;其实是我们对事物的见识与内…