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 モバイル (AMX ページ) を使用しようとしていますか? その場合、JDBC を使用してクライアントからリモート データベースに接続することはできません。JDBC を使用して、デバイス上のローカル SQLite DB にのみ接続できます。リモート サーバーからデータにアクセスするには、このデータを Web サービスで公開し、それらを呼び出す必要があります。

于 2013-07-02T21:02:54.160 に答える