吴裕雄--天生自然JAVA数据库编程:事务处理
DROP TABLE user ; -- 删除表
CREATE TABLE user(
id INT AUTO_INCREMENT PRIMARY KEY ,
name VARCHAR(30) NOT NULL ,
password VARCHAR(32) NOT NULL ,
age INT NOT NULL ,
sex VARCHAR(2) DEFAULT '男' ,
birthday DATE
) ; INSERT INTO user(name,password,age,sex,birthday) VALUES ('李康','www.mldnjava.cn',23,'女','2003-08-27') ;
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
public class TranDemo01{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
Statement stmt = null ; // 定义数据库操作
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
stmt = conn.createStatement() ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ;
// 加入“'”之后,此SQL语法就出现了错误,所以,肯定执行到此语句的时候出现代码错误
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-'3','hello-3',13,'男','1977-06-01') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ;
int temp[] = stmt.executeBatch() ;
System.out.println("更新了:" + temp.length+ "条数据。") ;
stmt.close() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
public class TranDemo02{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
Statement stmt = null ; // 定义数据库操作
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; conn.setAutoCommit(false) ; // 取消掉自动提交 stmt = conn.createStatement() ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ;
// 加入“'”之后,此SQL语法就出现了错误,所以,肯定执行到此语句的时候出现代码错误
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-'3','hello-3',13,'男','1977-06-01') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ;
stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ;
try{
int temp[] = stmt.executeBatch() ;
System.out.println("更新了:" + temp.length+ "条数据。") ;
conn.commit() ; // 所有的操作成功了
}catch(Exception e){
try{
conn.rollback() ;
}catch(Exception e1){ }
}
stmt.close() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
import java.sql.Savepoint ;
public class TranDemo03{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
Statement stmt = null ; // 定义数据库操作
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; conn.setAutoCommit(false) ; // 取消掉自动提交 stmt = conn.createStatement() ;
stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ;
stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ;
Savepoint sp = conn.setSavepoint() ; // 设置保存点 stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ;
stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
" VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ;
try{
conn.rollback(sp) ; // 回滚到保存点
conn.commit() ; // 所有的操作成功了
}catch(Exception e){
e.printStackTrace() ;
}
stmt.close() ;
conn.close() ; // 数据库关闭
}
};
吴裕雄--天生自然JAVA数据库编程:事务处理的更多相关文章
- 吴裕雄--天生自然JAVA数据库编程:使用JDBC连接ORACLE数据库
DROP TABLE person ; DROP SEQUENCE myseq ; CREATE SEQUENCE myseq ; CREATE TABLE person ( id INT PRIMA ...
- 吴裕雄--天生自然JAVA数据库编程:使用元数据分析数据库
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...
- 吴裕雄--天生自然JAVA数据库编程:JDBC2.0操作
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...
- 吴裕雄--天生自然JAVA数据库编程:CallableStatement接口
DELIMITER // DROP PROCEDURE myproc // -- 删除过程 CREATE PROCEDURE myproc(IN p1 int,INOUT p2 int,OUT p3 ...
- 吴裕雄--天生自然JAVA数据库编程:处理大数据对象
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...
- 吴裕雄--天生自然JAVA数据库编程:PrepareStatement
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...
- 吴裕雄--天生自然JAVA数据库编程:ResultSet接口
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...
- 吴裕雄--天生自然JAVA数据库编程:执行数据库更新操作
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.Statement ; public clas ...
- 吴裕雄--天生自然JAVA数据库编程:JDBC操作步骤及数据库连接操作
public class ConnectionDemo01{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gj ...
随机推荐
- 【原】jenkins知识点_凭据(一)
一:凭据 1.目的: 与第三方网站或应用程序进行交互,如代码仓库.云存储系统和服务等 2.操作路径: Jenkins-凭据-系统-全局凭据 3.权限 Jenkins 中保存的凭证可以用于: 任何适用于 ...
- Update(Stage4):scala补充知识
1.惰性加载: 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行.这些SQL语句,如果直接加载到JVM中,会有很大的内存开销.如何解决? 当有一些变量保存的 ...
- cmake 环境安装与使用
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的 ...
- HDU 1035 Robot Motion(dfs + 模拟)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1035 这道题比较简单,但自己一直被卡,原因就是在读入mp这张字符图的时候用了scanf被卡. ...
- [WC2018]州区划分(状压,子集卷积)
[洛谷题面]https://www.luogu.org/problemnew/show/P4221 首先考虑判定一个子图是否合法: (1)连通:并查集判断即可. (2)没有欧拉回路:存在欧拉回路的条件 ...
- 【代码总结】GD库中图片缩印
bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 网格系统实例:偏移列
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Java基础 -5.3
方法的递归调用 指的是一个方法自己调用自己的情况,利用递归调用可以解决一些重复且麻烦的问题 在进行我们递归调用的时候一般要考虑如下几点问题 一定要设置方法递归调用的结束条件 每一次调用的过程之中一定要 ...
- Java基础 -1.2
Shell是脚本程序的含义 在很多编程语言中为了方便使用者进行代码的开发 都会有shell交互式编程环境 可能是为了进行一些简短的程序验证 但是在java里面就必须编写很多的结果代码才可以实现 为了解 ...
- java_3:JVM、JRE、JDK区别和联系
首先 三者之间存在包含关系JVM + 核心类库 = JREJRE + java开发工具(javac.exe/jar.exe) = JDK 什么是JVM? 我们知道Java语言有一个独特的优点就是可以跨 ...