zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然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() ;            // 数据库关闭
        }
    };
  • 相关阅读:
    Linux下文件的基本操作
    conpot_usage简要说明
    const声明常量以及特点
    let变量声明以及声明特性
    盒子模型
    文本样式
    行间距
    字体的其他样式
    字体分类
    字体样式
  • 原文地址:https://www.cnblogs.com/tszr/p/12158912.html
Copyright © 2011-2022 走看看