社区
MySQL
帖子详情
Java处理数据库的事务疑问,麻烦大家:)
dukcho
2004-04-08 05:01:02
我想一次性完成两个操作:
1,删除Student中一个班的数据的数据;
2,向Student中添加一个班的新的数据;
两个操作要么都成功,要么都不成功。这应该作为一个事务吧,但我不知道Java中对数据库中的事务应该如何处理,请高手指教,谢谢!!
...全文
41
3
打赏
收藏
Java处理数据库的事务疑问,麻烦大家:)
我想一次性完成两个操作: 1,删除Student中一个班的数据的数据; 2,向Student中添加一个班的新的数据; 两个操作要么都成功,要么都不成功。这应该作为一个事务吧,但我不知道Java中对数据库中的事务应该如何处理,请高手指教,谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
seawolfzxw
2004-04-08
打赏
举报
回复
学习
bs221cn
2004-04-08
打赏
举报
回复
cn.setAutoCommit(false);
try{
s.excuteUpdate("update.....1");
s.excuteUpdate("update.....2");
cn.commit();
}
catch(SQLException e)
{
cn.rollback();
}
loveflea
2004-04-08
打赏
举报
回复
流程是这样的
set autocommit = 0;
delete from student ...;
insert into student ...;
commit;
set autocomit = 1;
给你个例子:
import java.sql.*;
public class Test
{
public static void main(String[] args)
{
try
{
String query = "";
// Load Mysql's JDBC Driver
String driver="com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
// Remote mysql server of SiChuan
String url = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=gbk";
String user = "root";
String password = "password";
Connection connRemoteMysql = DriverManager.getConnection(url, user, password);
// set AutoCommit = false
connRemoteMysql.setAutoCommit(false);
// Define Statement
Statement stmt = connRemoteMysql.createStatement();
query = "delete from Student where class=5";
stmt.executeUpdate(query);
query = "insert into student(...) values(...)";
stmt.executeUpdate(query);
// commit the translate
connRemoteMysql.commit();
if (stmt!=null){
stmt.close();
}
if (connRemoteMysql!=null){
connRemoteMysql.close();
}
}
catch (Exception e) {
e.printStackTrace();
try {
if (connRemoteMysql != null && !connRemoteMysql.isClosed())
{
prt("Rolling back transaction");
connRemoteMysql.rollback();
}
}
catch(SQLException rx) {
System.out.println("SQLException - rollback() failed: " + rx.getMessage());
}
}
finally {
if (connRemoteMysql != null && !connRemoteMysql.isClosed()) {
connRemoteMysql.setAutoCommit(true);
}
}
}
}
二十三种设计模式【PDF版】
整体结构和一些主要职责(如
数据库
操作
事务
跟踪 安全等),剩余的就是变化的东西,针对这个领域中具体应用产生的具体不同 的变化需求,而这些变化东西就是 J2EE 程序员所要做的。 由此可见,设计模式和 J2EE 在思想...
java
数据库
连接池过多_高性能
数据库
连接池的内幕
大家可能会有这样
疑问
:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的。可能还会有这样的
疑问
:高性能这么高大上,一个小小的连接池,...
极简
JAVA
零基础入门到实战
课程7:《极简
JAVA
:多线程与网络编程》 阶段二:
数据库
入门 课程8:《极简
JAVA
:MySql
数据库
》 课程9:《极简
JAVA
:JDBC与连接池》 阶段三:
JAVA
WEB 课程10:《极简
JAVA
:HTML5与CSS3》 课程11:《极简
JAVA
:极简...
java
mysql
事务
加锁_重新学习MySQL
数据库
6:浅谈MySQL的中
事务
与锁
更多精彩内容请到我的仓库里查看喜欢的话
麻烦
点下Star哈文章首发于我的个人博客:www.how2playlife.com本文是微信公众号【
Java
技术江湖】的《重新学习MySQL
数据库
》其中一篇,本文部分内容来源于网络,为了把本文...
Spring
事务
:Spring声明式
事务
详解、@Transactional注解源码及使用说明、
数据库
隔离级别、读未提交,读已提交,可重复读,串行化详细说明
同样地,使用AOP的思维后,执行SQL的代码就可以织入Spring约定的
数据库
事务
的流程中。所以首先需要掌握这个约定。 Spring 声明式
数据库
事务
约定 在讲解SpringAOP时,只要我们遵循约定,就可以把自己开发的代码织入...
MySQL
56,679
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章