La connexion à oracle dans android

De sorte que les gens vont probablement me dire que c'est une mauvaise idée, mais j'aimerais au moins lui donner un aller.

MODIFIER L'objectif de cette application est qu'elle ne peut fonctionner que lorsque l'appareil est partie d'un même réseau oracle db est sur ou est connecté au réseau via le VPN. Les informations contenues dans la base de données n'est pas accessible dans le monde entier, c'est pourquoi j'ai besoin d'une connexion directe à l'oracle db.

Maintenant en fonction de ce fil

Connexion de l'oracle dans une application android

Il a réussi à interroger l'oracle db.

J'ai donc une assez classe de base que lors de l'initialisation va essayer d'obtenir une connexion à ma base de données.

package com.producermobile;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.util.Log;

public class ConnectOra {
    private Connection conn;
    private Statement stmt;
    public ConnectOra() throws ClassNotFoundException {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url = "jdbc:oracle:thin:@x.x.x.x:1521:PR10";
            this.conn = DriverManager.getConnection(url,"xxx","xxx");
            this.conn.setAutoCommit(false);
            this.stmt = this.conn.createStatement();
        } catch(SQLException e) {
            Log.d("tag", e.getMessage());
        }       
    }
    public ResultSet getResult() throws SQLException {
        ResultSet rset = stmt.executeQuery("select customer from customers");
        stmt.close();
        return rset;            
    }
}

Et dans mon activité principale méthode onCreate j'ai cette

@Override
public void onCreate(Bundle savedInstanceState) {
    try {
        super.onCreate(savedInstanceState);
        ConnectOra db = new ConnectOra();
        ResultSet rs = db.getResult();
        ArrayList<String> list = new ArrayList<String>();
        while(rs.next()) {
            list.add(rs.getString(1));
        }
        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list));

        ListView lv = getListView();
        lv.setTextFilterEnabled(true);          
    } catch(Exception e) {

    }
}

Dans Eclipse, j'ai ajouter l'externe ojdbc14.jar fichier pour le build path.

Cependant quand je lance

this.conn = DriverManager.getConnection(url,"xxx","xxx");

Je reçois l'exception suivante

"Io exception: La Carte Réseau
n'a pas pu établir la connexion"

Cependant, si je crée une instance de cette classe à l'intérieur d'une norme d'application java avec une méthode main, la connexion fonctionne. Des idées?

  • Notez que de nombreuses entreprises séparer de leur réseau d'entreprise de la wifi et d'une couche supplémentaire de sécurité d'exiger de l'entreprise de VPN pour être utilisé.
InformationsquelleAutor PDStat | 2011-02-16