JDBC连接Oracle数据库

来源:互联网 发布:java线程池状态 编辑:程序博客网 时间:2024/06/17 17:37

连接步骤

1,注册驱动

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. DriverManager.registerDriver(new oracle.jdbc.OracleDriver());  

2,获取连接

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. Connection conn = null;  
  2. conn = DriverManager.getConnection(url, user, password);  

3,设置语句

1)简单语句

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">String sql = "SELECT * FROM *****";</span>  


2)存储过程

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. String sql = "{call Procedure_name(?,?,?)}"  
 

   注:若有参数,需要使用“?”占位符

3)函数语句

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. String sql= "SELECT MAX(COL_NAME) FROM T_NAME"  
   

        同简单语句的使用。注:这里可以为使用函数的列起个名字,在sql语句中可以直接跟在函数后面。不用加引号,所以也不会引起符号冲突。 如:

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. String sql= "SELECT MAX(COL_NAME) 最大结果 FROM T_NAME"  

4,执行语句

1)有返回结果的操作

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. ResultSet res = null;  
  2. Statement stat = null;  
  3. res = stat.executeQuery(sql);  

2)增删改无返回结果的操作
[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. Statement stat = null;  
  2. int i = stat.executeUpdate(sql);  

5,返回结果

1)查询语句的结果

ResultSet返回的是类似数据库中的表。对表中数据分析即可

2)执行非查询语句返回的结果

executeUpdate()方法返回的结果是个int类型的,返回执行结果受影响的条数。



连接问题

上述步骤连接Oracle10g数据库不会出现问题。如果是连接Oracle11g就会出现问题。

错误信息:Unhandled exception type SQLException


 问题原因就是Oracle11g软件更新了连接方法。url 中在Oracle 10g中是localhost,11g 中本地连接要用计算机名称。

 Oracle 10 g URL代码(本地):

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. jdbc:oracle:thin:@localhost:1521:oracle_name  

 Oracle 11g URL代码(本地):

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. jdbc:oracle:thin:@pc_name:1521:oracle_name  

 如果通过ip连接的话,pc_name换成ip就行拉。



:查询oracle_name

 安装Oracle的过程会出现让我们自定义数据库的名称,我就是忘了名字啦。当初有种想重装的冲动啊。。不过还好,能在安装目录下查到。省大事儿啦。所以说嘛,以后安装软件的时候,尤其是数据库有名字的话一定要记住。




0 0