Mysql事务操作失败如何解决

事务的原子性 :事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 。
要实现事务的原子性,单单靠一条commit或是rollback命令还是不行的,因为例如commit命令它只是将一个事务中执行成功的DML语句提交给数据库里。如果要实现事务的原子性,则就需要commit和rollback命令配合上程序上的一个业务逻辑才能可以,具体业务逻辑代码如下示例代码:
1.现象
程序中打开了事务进行插入,但是没有commit,表中的数据已经存在,就是回滚也不能删除插入的数据
2.原因
本表的Storage Engine 为myisam,不是innoDB,不支持事务处理 rollback()
3.解决方法
使用 alter table xxxx engine = innoDB ; 将表改为 InnoDB 引擎,结果回滚正常。
4.代码
private void testCrud() {
Connection conn = null; //连接对象
PreparedStatement pstmt = null; //预编译的SQL语句对象
try{
//加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
//连接字符串
String url = "jdbc:mysql://localhost:3306/test";
//建立数据库连接
conn = DriverManager.getConnection(url,"root","");
//设置事务的隔离级别
// conn.setTransactionIsolation(Connection. TRANSACTION_REPEATABLE_READ);
//设置自动提交为false,开始事务
conn.setAutoCommit(false);
//带参数的更新语句
String sql = "INSERT INTO user_info (username ,password ,age )values(?,?,?)";
//准备语句
pstmt = conn.prepareStatement(sql);
//绑定参数,执行更新语句,将张三的账户金额减去1000元
pstmt.setString(1, "zhangui");
pstmt.setString(2, "1111");
pstmt.setInt(3, 300);
pstmt.execute();
//绑定参数,执行更新语句,将李四的账户金额增加1000元
// pstmt.setString(1, "zzzzzzzzzzzzzzzzz"); //绑定了非法参数
//pstmt.setString(2, "1111111111");
//pstmt.setInt(3, 500);
//pstmt.execute(); //将抛出SQL异常
//提交事务
//conn.commit();
System.out.println("事务已提交,转账成功!");
//关闭语句、连接
pstmt.close(); conn.close();
}catch(Exception e){
try{
conn.rollback(); //回滚事务
System.out.println("事务回滚成功,没有任何记录被更新!");
}catch(Exception re){
System.out.println("回滚事务失败!");
}
e.printStackTrace();
}finally{
if(pstmt!=null) try{pstmt.close();}catch(Exception ignore){}
if(conn!=null) try{conn.close();}catch(Exception ignore){}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Mysql事务操作失败
# mysql
# 事务操作失败解决办法
# Mysql事务处理详解
# 通过实例分析MySQL中的四种事务隔离级别
# 解决Mysql收缩事务日志和日志文件过大无法收缩问题
# mysql的存储过程、游标 、事务实例详解
# PHP mysqli事务操作常用方法分析
# MySQL四种事务隔离级别详解
# NodeJs使用Mysql模块实现事务处理实例
# MySQL数据库事务隔离级别详解
# MySQL事务的基础学习以及心得分享
# 绑定
# 没有任何
# 希望能
# 不做
# 不支持
# 谢谢大家
# 定了
# 解决方法
# 都做
# 如何解决
# 抛出
# 设置自动
# 单靠
# 库里
# 事务处理
# 李四
# 加载
# 本表
# 打开了
# brush
相关文章:
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何获取上海专业网站定制建站电话?
全景视频制作网站有哪些,全景图怎么做成网页?
c# 在ASP.NET Core中管理和取消后台任务
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
制作企业网站建设方案,怎样建设一个公司网站?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星后台管理:高效配置与模板优化提升用户体验
定制建站价位费用解析与套餐推荐全攻略
个人摄影网站制作流程,摄影爱好者都去什么网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何通过wdcp面板快速创建网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
如何在建站宝盒中设置产品搜索功能?
建站之星后台管理如何实现高效配置?
建站之星安装路径如何正确选择及配置?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
已有域名如何免费搭建网站?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
如何在新浪SAE免费搭建个人博客?
如何高效配置香港服务器实现快速建站?
Swift中循环语句中的转移语句 break 和 continue
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站之星官网登录失败?如何快速解决?
,石家庄四十八中学官网?
如何通过虚拟主机空间快速建站?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何用狗爹虚拟主机快速搭建网站?
制作网站的公司有哪些,做一个公司网站要多少钱?
如何选择靠谱的建站公司加盟品牌?
,网站推广常用方法?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
Android滚轮选择时间控件使用详解
如何快速搭建高效WAP手机网站?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
TestNG的testng.xml配置文件怎么写
网站制作新手教程,新手建设一个网站需要注意些什么?
建站之星后台密码遗忘如何找回?
建站之星好吗?新手能否轻松上手建站?
nginx修改上传文件大小限制的方法
代刷网站制作软件,别人代刷火车票靠谱吗?
建站之星在线版空间:自助建站+智能模板一键生成方案
如何在腾讯云服务器快速搭建个人网站?
湖北网站制作公司有哪些,湖北清能集团官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。