oracle 事务简介,锁的概念,java访问数据库注意事项

时间:2022-02-28 04:28:50

java链接oracle和连接其他数据库一样有两种方式:
1 桥接 jdbc-obdc
2 jbdc

insert语句一次插入大量数据
insert into table (列1,列2,列3) select 列1,列2,列3 from table1;

update语句在更新数据时直接修改数据(oracle特有的)
update table set(列1,列2,列3) = (select 列1,列2,列3, from table1 where.....) where ..... ;

用查询结果创建新表
create table table2 (列1,列2,列3) as select 列11,列22,列33 from table;

oracle中的事务处理
1 锁的概念
2 保存点的使用:
在处理当前事务过程中,还没提交事务时,可以回滚到保存点
savepoint point1;rollback to point1;
提交命令是:commit;
特别指出:每次退出数据库的时候数据库都会自动提交,没有提交相当于内容在变但是没有保存。
3 在java中使用事务
在java中访问数据库时,每执行一条语句就会提交一次,如果多条语句执行过程中,发生错误,会导致表被改变

,并且没按照程序员的意愿发生改变,这时需要利用事务的原理设计程序。

 import java.sql.*;

 public class Demo001 {

 public static void main(String[] args) {
  Connection ct = null;
  try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    ct = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:myoracle1","scott","tiger");
    Statement st = ct.createStatement();     //设置ct不自动提交事务
    ct.setAutoCommit(false);     st.executeUpdate("update table set a1 = a1 + 100 where name = 'sss' ");     int w = 1/0;//故意制作的异常     st.executeUpdate("update table set a2 = a2 - 100 where name = 'sss' ");     ct.commit();
    ct.close();
    st.close();     }catch(Exception e){
27       try {
        //一旦发生异常则回滚
        ct.rollback();
      } catch (SQLException e1) {
          e1.printStackTrace();
      }
    }
  }
}