0

我正在尝试使用 jDeveloper 和 oracle sql developer 开发一个 adf 移动应用程序。

我已经连接了jDev和sql。我想填充 selectOneChoice 组合。我要获取数据。

这是我的连接方法;

package salesorder.application;

import groovy.sql.Sql;

import java.sql.Connection;

import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.sql.DataSource;

import oracle.adf.share.jndi.InitialContextFactoryImpl;

import oracle.adfmf.framework.api.AdfmfJavaUtilities;

import oracle.jbo.server.InitialContextImpl;

import oracle.jdbc.connector.OracleConnectionManager;
import oracle.jdbc.pool.OracleDataSource;

public class DBConnection {
  public DBConnection() {
    super();
  }


   private static String jdbcUrl = "jdbc:oracle:thin:@10.172.105.37:1521:VIS";
   private static String userid = "***";
   private static String password = "***"; 
   protected static  Connection conn = null;

public static Connection getConnection()throws Exception{
    if (conn == null) {
                try {

                           OracleDataSource ds; ds = new OracleDataSource();
                           ds.setURL(jdbcUrl);
                           conn=ds.getConnection(userid,password);


                } catch (SQLException e) {
                    // if the error message is "out of memory",
                    // it probably means no database file is found
                    System.err.println(e.getMessage());
                }
            }
    return conn;
}

}

这是我获取数据的方法;

    private void Execute() {
    Trace.log(Utility.ApplicationLogger, Level.INFO, Customers.class, "Execute",
                      "!!!!!!!!!!!!!!!!!In COUNTRY Execute!!!!!!!!!!!!!!!!!!!!!!!!!");
    try{
        Connection conn = DBConnection.getConnection();
        customers.clear();
        conn.setAutoCommit(false);

        PreparedStatement stat= conn.prepareStatement("select cust_account_id,account_name from hz_cust_accounts_all where account_name is not null order by account_name asc"); 

        // fetching customers name
        ResultSet rs = stat.executeQuery();
        Trace.log(Utility.ApplicationLogger, Level.INFO, Customers.class, "Execute",
                             "!!!!!!!!!!!!!!!!!Query Executed!!!!!!!!!!!!!!!!!!!!!!!!!");

        while(rs.next()){
            int id = rs.getInt("CUST_ACCOUNT_ID"); // customer id
            String name = rs.getString("ACCOUNT_NAME"); // customer name
            Customer c = new Customer(id,name);
            customers.add(c);
        }
        rs.close();

        } catch (SQLException e) {
                  System.err.println(e.getMessage());
              } catch (Exception e) {
                  System.err.println(e.getMessage());
              }
    }

当我尝试启动应用程序时,会出现这样的错误。
我不能使用图像。所以


错误

oracle.jdbc.pool.OracleDataSource

我不知道我将如何解决这个问题,我不知道为什么。有什么帮助吗?

4

1 回答 1

0

澄清一下 - 您是否尝试使用 ADF Mobile(AMX 页面)?如果是这样,那么您无法使用 JDBC 从客户端连接到远程数据库。您只能使用 JDBC 连接到设备上的本地 SQLite DB。要从远程服务器访问数据,您需要使用 Web 服务公开这些数据并调用它们。

于 2013-07-02T21:02:54.160 回答