2017-01-10 9 views
0

私はOracleデータベースを持っていますが、私は情報にアクセスする必要がありますが、私はできません。 アンドロイドでoracleデータベースに接続する方法は?

public class JDBC_ORA { 
    static String userName="XXX"; 
    static String password="X"; 
    static String server="192.168.X.X"; 

    public Connection con; 

    public void conexion() {   
     try {   
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      con = DriverManager.getConnection("jdbc:oracle:thin:" + userName + "/" + password+ "@"+server);    

     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 


    public void cerrar (Connection con) { 
     try { 
      con.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 

     } 
    } 
} 

と私はmainactivityでそれを呼び出す:私は、私はクラスを作成し、OJDBC6ドライバをインポートした

JDBC_ORA ora_con = new JDBC_ORA(); 
    ora_con.conexion(); 
    try { 
     Statement stmt = ora_con.con.createStatement(); 
     rset = stmt.executeQuery("select * from asdf where cid='"+ var + "'"); 
     while (rset.next()) 
     { 
      System.out.println(blablablabla); 
      ora_con.con.commit(); 
     } 
     stmt.close(); 
     ora_con.cerrar(ora_con.con); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

、常にこのエラーが

Could not find class 'oracle.security.pki.OraclePKIProvider', referenced from method oracle.jdbc.driver.OracleDriver.<clinit> 

Could not find class 'javax.management.MBeanServer', referenced from method oracle.jdbc.driver.OracleDriver.registerMBeans 

誰かが私を助けることはできますお願いします?

答えて

2

Do not。これを行う場合は、アプリにパスワードを入力する必要があります。つまり、あなたのデータベースは完全に安全ではなく、アプリケーションのコピーとそれを逆コンパイルする5分の誰でもアクセスできます。代わりに、アプリケーションとデータベースの間にあるWebサービスを使用します。そうすれば、あなたはマシンを離れるためにパスワードを必要としません。

+0

パスワード文字列に入れて、私のjavaプログラムの接続はよくあります – marcss

+0

@marcss:電話アプリはデータを取得するサービスを呼び出します。このサービスはバックエンドサーバー上に存在し、サーバーだけがデータベースへの接続方法を知っています。サーバーは、サービスインターフェイス以外の外部からアクセスできません。これは、電話アプリとサービスの間のインターフェイスが変更されない限り、電話アプリを変更することなくデータベースを変更することもサポートしています。 –

+0

しかし、私はこれを望んでいません。私は私の会社でのみ接続したいと私は情報を取るためにJDBCで接続する必要があります – marcss

0

ベストプラクティスは、Java、.Net、PHPなどで書かれたWebサービスを使用することです。次に、作成したWebサービスでアプリケーションを接続する必要があります。もう1つの方法はOracle Database Mobile Serverです。

Googleでウェブサービスを簡単に作成する方法を見つけることができます。

関連する問題