您的位置:首页 > 数据库 > Oracle

oracle连接数据库测试代码

2016-11-16 17:20 411 查看

oracle连接数据库测试代码

oracle连接数据库测试代码

 

/**

*

* 说明:

* (1)本例使用JDBC_ODBC桥进行数据库连接,故此需要ODBC数据源

* (2)本例中SQL为更新语句,故此使用载体的executeUpdate方法,并且返回受影响记录数

* (3) 配置连接Oracle的odbc数据源ora

*/

//导入所需类包

import
Java.sql.*;

public class JdbcTestOra2 {

public static void main(String args[]) {

    try {

      //装载驱动程序

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     

      //建立数据库连接

      Connection con = DriverManager.getConnection("jdbc:odbc:ora","scott","tiger");

     

      //创建SQL语句载体

      Statement st = con.createStatement();

     

      //执行SQL语句,接收执行结果

      int rs = st.executeUpdate("update emp set comm=1000");

           

      //处理结果

      System.out.println("修改记录数:"+rs);

     

      //释放数据库资源,注意顺序

      st.close();

      con.close();           

    }

    catch (Exception e) {

      e.printStackTrace(System.out);

    }

}

}

 

 

/**

* 说明:

* (1)本例使用JDBC_ODBC桥进行数据库连接,故此需要ODBC数据源

* (2)本例中SQL语句载体为可输入参数型,注意参数的表示和赋值

* (3)本例中SQL为查询语句,故此使用载体的executeQuery方法,并且返回结果集

* (4) 配置连接ORACLE的odbc数据源ora

*/

//导入所需类包

import java.sql.*;

public class JdbcTestOra3 {

public static void main(String args[]) {

    try {

//装载驱动程序

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     

//建立数据库连接

      Connection con = DriverManager.getConnection("jdbc:odbc:ora","scott","tiger");

     

//创建可输入参数的SQL语句

      PreparedStatement ps = con.prepareStatement("select * from emp where empno=?");

         

//为参数赋值,注意下标从1开始

      ps.setInt(1, 7934);

     

      //执行SQL语句,接受结果集

      ResultSet rs = ps.executeQuery();

     

//处理结果

      while (rs.next()) {

        System.out.println("员工编号:"+rs.getInt("empno"));

        System.out.println("员工姓名:"+rs.getString("ename"));

     }

//释放数据库资源,注意顺序

      rs.close();

      ps.close();

      con.close();                

    }

    catch (Exception e) {

      e.printStackTrace(System.out);

    }

}

}

 

 

/**

* 说明:

* (1)本例使用JDBC_ODBC桥进行数据库连接,故此需要ODBC数据源

* (2)本例中SQL语句载体为调用存储过程型,注意参数的表示和赋值,

*      尤其是OUTPUT参数的注册与值获取

* (3)本例中涉及到存储过程pro1,其定义如下:

*                  create or replace procedure add_pro(cs1 number,cs2 number,cs3 out number)

*                  as

*                  begin  

*                      cs3:=cs1/cs2;

*                  exception

*                    when others then

*                       raise_application_error(-20001,'0做除数');  

*                  end;

*      该存储过程接受两个int类型输入参数,并将计算结果以输出参数

*      形式返回

* (4) 配置连接ORACLE的odbc数据源ora

*/

//导入所需类包

import java.sql.*;

public class JdbcTestOra4 {

public static void main(String args[]) {

    try {

      //装载驱动程序

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     

      //建立数据库连接

      Connection con = DriverManager.getConnection("jdbc:odbc:ora","scott","tiger");

     

      //创建调用存储过程的载体

      CallableStatement

          cs = con.prepareCall("{call add_pro(?,?,?)}");

         

      //为输入参数赋值,注意下标从1开始

      cs.setInt(1, 33);

      cs.setInt(2, 0);

     

      //声明注册输出参数

      cs.registerOutParameter(3, Types.INTEGER);

     

     

      //执行存储过程

      cs.execute();

     

      //获取输出参数

      int rs = cs.getInt(3);

     

     

      //处理结果

      System.out.println("存储过程执行结果:"+rs);

     

      //释放数据库资源

      cs.close();

      con.close();     

    }

    catch (SQLException ee){

       if (ee.getErrorCode() == 20001)

            System.out.println("0做了除数");

    

    }

    catch (Exception e) {

         System.out.println(e.getMessage());

    }

}

}

 

 

 

/**

* 说明:

* (1)本例使用JDBC_ODBC桥进行数据库连接,故此需要ODBC数据源

* (2)本例中SQL语句载体调用包中的函数

* (3)本例中涉及到程序包,其定义如下:

          create or replace package java_refcursor as

       type myrctype is ref cursor return EMP%ROWTYPE;

      function job_listing (j varchar2) return myrctype;

    end java_refcursor;

   

    create or replace package body java_refcursor as

      function job_listing (j varchar2) return myrctype is

        rc myrctype;

      begin

        open rc for select * from emp where job = j;

        return rc;

      end;

    end java_refcursor;

*     

*   利用ref cursor返回结果集

*/

//导入所需类包

import java.sql.*;

import java.io.*;

// Importing the Oracle Jdbc driver package makes the code more readable

import oracle.jdbc.*;

 

public class JdbcTestOra5 {

public static void main(String args[]) {

    try {

      //装载驱动程序

      //JDBC-ODBC桥不支持ref cursor,所以必须使用thin驱动

      Class.forName("oracle.jdbc.driver.OracleDriver");

      //建立数据库连接

      Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:accp","scott","tiger");

      //创建调用存储过程的载体

      CallableStatement call =

        con.prepareCall ("{ ? = call java_refcursor.job_listing (?)}");

      //执行存储过程

     call.registerOutParameter (1, OracleTypes.CURSOR);

    call.setString (2, "MANAGER");

    call.execute ();

    //取得引用游标

    ResultSet rset = (ResultSet)call.getObject (1);

      //获取存储过程返回的结果集(第一个)

      while (rset.next ())

      System.out.println (rset.getString ("ENAME"));

    

      //释放数据库资源

      rset.close();

      call.close();

      con.close();

    }

    catch (Exception e) {

      e.printStackTrace(System.out);

    }

}

}

 
 
上一篇中国所有省份及地区
下一篇通过JDBC连接oracle数据库的十大技巧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle