可以,但只是开发而已。因为效率非常低。oracle目录下有纯java的,效率会更好些。

解决方案 »

  1.   

    用odbc效率不行,配起来又麻烦
      

  2.   

    fh19(Bon.Rush) 你真幽默。
    再请问各位:我在开发过程中,所有软件都装在同一台机子上,已测试成功了用桥来访问Oracle,但开发完部署软件时,B机还需不需要配置什么啊?
      

  3.   

    当然可以,你开发完后发布的时候需要另外再配置odbc,还有你使用odbc后,就绑定再ms平台上了。但为什么不用jdbc?下面是我以前摘抄的,希望能对你有用
    -------------
    尽管Sun提供了JDBC-ODBC桥接驱动程序,但由于ODBC会在客户端装载二进制代码和数据库客户端代码,这种技术不适用于高事务性的环境。另外,第一类JDBC驱动程序不支持完整的Java命令集,而是局限于ODBC驱动程序的功能。
      

  4.   

    以下是测试与Oracle连接的代码,注释掉了用桥连接的代码:
    import java.sql.*;
    //import oracle.jdbc.driver.OracleDriver;public class TestOracle {
      public static void main(String[] args) {
        int i;
        Connection conn = null;
        // register jdbc driver
        try {
          Class.forName("oracle.jdbc.driver.OracleDriver");
    //      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          // in order to use Oracle thin/oci driver
        }
        catch (ClassNotFoundException e) {
          System.out.println(e);
        }
        // connect to DB
        try {
          conn = DriverManager.getConnection(
              "jdbc:oracle:thin:@127.0.0.1:1521:oradb",
    //          "jdbc:odbc:oradb",
              "scott", "tiger");
          // thin: driver
          // @127.0.0.1 for local connection. @xxx.xxx.xxx.xxx for global
          // 1521: port number. This should be match to Oracle network port.
          // oradb: SID of Oracle database
          // scott: username of Oracle database
          // tiger: password of Oracle database
        }
        catch (SQLException se) {
          System.out.println(se);
        }
        System.out.println("connection is successful!!!");
        try {
          String selectSQL = "select ID, NAME, ADDRESS from tb_address";
          Statement stmt = conn.createStatement();
          ResultSet rset = stmt.executeQuery(selectSQL);
          while (rset.next()) {
            System.out.println("ID: " + rset.getString(1) + "   NAME: " +
                               rset.getString(2) + "   ADDRESS:" +
                               rset.getString(3));
          }
          stmt.close();
        }
        catch (SQLException se) {
          System.out.println(se);
        }
      }
    }
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    问题在于JB提示:
    Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriverjava.sql.SQLException: No suitable driver
    所以我才问是否能用桥访问B机。
      

  5.   

    多谢ghostboat(ghostboat),
    我本机装得有Oracle,虽然在系统变量的classpath中加了Oracle自带的驱动程序包class12.zip路径,但还是出现上述问题,甚是郁闷~~~~~~~~~~~~~~~~~~谁人能解?
      

  6.   

    jdbc:oracle:thin:@127.0.0.1:1521:oradb
    这个不是jdbc么~?
    你可以确定你的class2。jar是否已起作用
    import oracle.jdbc.driver.OracleDriver;这句,能否可以找到OracleDriver?
    觉得你的错误还是没有将class12。jar加入
      

  7.   

    ghostboat(ghostboat) 你说对了,我在classpath中虽然添加了驱动器包的路径,即使重启JB再打开工程,也找不到驱动器包,而是手工在tool->configure libraries中添加该包,再在工程中引入该包后,测试就成功了。多谢你的提示。
    我的结论:还是thin方式好,部署时,A机上不用配数据源,B机也不需改动任何配置。
    看大家还有没有什么要讨论的,过几天我在结贴。