oracle11g教程从入门到精通

可惜我没运行成功,说

java.sql.SQLException: No suitable driver found for jdbc.odbc:testConnectOracle

at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sp.TestOracle.main(TestOracle.java:18) 不知道为什么。。。

接下来讲解用JDBC的方式连接Oracle Java代码

1. package com.sp; 2.

3. import java.sql.Connection; 4. import java.sql.DriverManager; 5. import java.sql.ResultSet; 6. import java.sql.Statement; 7.

8. //使用 jdbc连接oracle

9. public class TestOracle2 { 10.

11. public static void main(String[] args) { 12. try { 13.

14. // 1.加载驱动

15. Class.forName(\eDriver\ 16.

17. // 2.得到连接

18. Connection ct = DriverManager.getConnection 19.

20.(\\\ 21.

22. // 从下面开始,和SQL Server一模一样

23. Statement sm = ct.createStatement();

24. ResultSet rs = sm.executeQuery(\ct * from emp\

25. while (rs.next()) { 26. //用户名

27. System.out.println(\用户名: \2));

28. 29. 30. 31. 32. 33. 34.}

}

//默认是从1开始编号的 }

} catch (Exception e) { e.printStackTrace(); }

记得要把驱动包引入,classes12.jar

运行,。。。。 再次可惜,我还是没运行成功,错误是:

java.sql.SQLException: Io 异常: The Network Adapter could not establish the

connection

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334) at

oracle.jdbc.driver.OracleConnection.(OracleConnection.java:418) at oracle.jdbc.driver.OracleDriver.getConnectionInstance

(OracleDriver.java:521)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sp.TestOracle2.main(TestOracle2.java:18) 我也不知道为什么。。。 幽怨了。。

接下来建个web project,来测试oracle的分页,挺麻烦,不记录了。。

在oracle中操作数据 - 使用特定格式插入日期值 使用 to_date函数

请大家思考: 如何插入列带有日期的表,并按照年-月-日的格式插入? insert into emp values (9998,

'xiaohong', 'MANAGER',7782,to_date('1988-12- 12', 'yyyy-mm-dd'), 78.9, 55.33, 10); 注意:

insert into emp values (9998,'xiaohong','MANAGER', 7782,'12-12月-1988', 78.9, 55.33,10); 这句语句是可以成功运行的

使用子查询插入数据

介绍

当使用valus子句时,一次只能插入一行数据,当使用子查询插入数据时,一条inset语句可以插入大量的数据。当处理行迁移或者装载外部表的数据到数据库时,可以使用子查询来插入数据。

把emp表中10号部门的数据导入到新表中 create table kkk(myId number(4), myName varchar2(50), myDept number(5)); insert into kkk (myId, myName, myDept) select empno, ename, deptno from emp where deptno = 10;

介绍

使用update语句更新数据时,既可以使用表达式或者数值直接修改数据,也可以使用子查询修改 数据。

问题:希望员工SCOTT的岗位、工资、补助与SMITH员工一样。

update emp set(job, sal, comm)=(select job, sal, comm from emp where ename='SMITH') where ename='SCOTT';

八:oracle中事务处理

什么是事务

事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml(数据操作语言,增删改,没有查询)语句要么全部成功,要么全部失败。 如:网上转账就是典型的要用事务来处理,用于保证数据的一致性。 dml 数据操作语言

银行转账、QQ申请、车票购买 事务和锁

当执行事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户修改表的结构。这里对我们的用户来来讲是非常重要的。

.....其它进程排序,知道1号进程完成,锁打开,2号进程进入。依次进行,如果有进程级别较高的,可以插队。

提交事务

当执行用commit语句可以提交事务。当执行了commit语句之后,会确认事务的变化、结束事务。删除保存点、释放锁,当使用commit语句结束事务之后,其它会话将可以查看到事务变化后的新数据。 保存点就是为回退做的。保存点的个数没有限制

回退事务

在介绍回退事务前,我们先介绍一下保存点(savepoint)的概念和作用。保存点是事务中的一点。用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。当执行rollback时,通过指定保存点可以回退到指定的点,这里我们作图说明。

事务的几个重要操作

1.设置保存点 savepoint a 2.取消部分事务 rollback to a 3.取消全部事务 rollback

注意:这个回退事务,必须是没有commit前使用的;如果事务提交了,那么无论你刚才做了多少个保存点,都统统没有。

如果没有手动执行commit,而是exit了,那么会自动提交

java程序中如何使用事务

在java操作数据库时,为了保证数据的一致性,比如账户操作(1)从一个账户中减掉10$(2)在另一个账户上加入10$,我们看看如何使用事务? Java代码

1. package com.sp; 2.

3. import java.sql.Connection; 4. import java.sql.DriverManager; 5. import java.sql.ResultSet; 6. import java.sql.Statement; 7.

8. public class TestTrans { 9.

10. public static void main(String[] args) { 11. try { 12.

13. // 1.加载驱动

14. Class.forName(\eDriver\ 15.

16. // 2.得到连接

17. Connection ct = DriverManager.getConnection(

18. \0.0.1:1521:orcl\\\ 19.

20. Statement sm = ct.createStatement(); 21.

22. // 从scott的sal中减去100

23. sm.executeUpdate(\emp set sal=sal-100 where ename='SCOTT'\ 24.

25. int i = 7 / 0;

26.

27. // 给smith的sal加上100

28. sm.executeUpdate(\emp set sal=sal+100 where ename='SMITH'\ 29.

30. // 关闭打开的资源 31. sm.close(); 32. ct.close();

33. } catch (Exception e) { 34. e.printStackTrace(); 35. } 36.

37. } 38. 39.}

运行,会出现异常,查看数据库,SCOTT的sal减了100,但是SMITH的sal却不变,很可怕。。。

我们怎样才能保证,这两个操作要么同时成功,要么同时失败呢? Java代码

1. package com.sp; 2.

3. import java.sql.Connection; 4. import java.sql.DriverManager; 5. import java.sql.SQLException; 6. import java.sql.Statement; 7.

8. public class TestTrans { 9.

10. public static void main(String[] args) { 11. Connection ct = null; 12. try {

13. // 1.加载驱动

14. Class.forName(\eDriver\ 15.

16. // 2.得到连接

17. ct = DriverManager.getConnection(

18. \0.0.1:1521:orcl\\\ 19.

20. // 加入事务处理

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4