2012-01-17 22 views
9

Necesito acceder a los datos de una base de datos oráculo externa desde mi aplicación Android para actualizar la aplicación de base de datos local, pero no sé cuál sería la mejor manera de hacerlo. ¿Tendría que crear un servicio web para acceder a la base de datos de Oracle o hay otra manera simple?¿Cuál es la mejor forma de conectarse entre la base de datos android y oracle?

Gracias

+1

Esta es mi respuesta se puede ver en este enlace: http://stackoverflow.com/questions/31536756/how-to-connect-android-with-oracle-database –

Respuesta

14

que tiene (al menos) dos opciones:

  1. Use Oracle Database Mobile Server. (Mejor, la apuesta más segura)

  2. Descargue el JDBC Drivers y conéctelo de esa manera. (No se recomienda, insegura - especialmente para la conectividad sobre-el-aire)

+2

... Me encantaría saber por qué esto fue downvoted? –

+0

Gracias! @ChrisCashwell – isramartinez

+2

Para explicar un poco sobre la respuesta de Chris, Oracle Database Mobile Server es una solución de sincronización. La ventaja aquí es que acaba de desarrollar la aplicación Android como lo haría normalmente, utilizando las rutinas SQLite del sistema operativo Android. Luego (después de haber implementado el servidor, por supuesto) simplemente configura e instala el cliente de sincronización en su dispositivo. Mantendrá sus datos SQLite locales sincronizados con la base de datos Oracle de fondo. –

1

No se puede acceder directamente a la base de datos Oracle desde la aplicación Android. necesita crear servicios web en PHP, .net o en Java para establecer una conexión con Oracle Database. Después de crear este servicio web, debe conectar su aplicación con el servicio web. Esta es la forma más simple de conectarse con la base de datos Oracle.

+4

Esto no es exactamente cierto. Sin duda puedes hacerlo a través de JDBC, simplemente no es la cosa más segura del mundo. –

+0

@ChrisCashwell puedes dar el enlace de JDBC con Android ... ???? – SilentKiller

+0

@silent_killer ver mi respuesta. –

0

en Android sólo se puede conectar directamente con SQLiteDatabase .. si desea conectar con MySQL u Oracle es necessory que usted tiene que hacer servicio web si va a ser en PHP, .NET o en JSP .. pero sin servicio web no se puede utilizar Oracle en Android ...

también puede hacerse a través de la conectividad JDBC pero yo DNT tener ejemplo exacta de ese ...

3

Tener un vistazo a mi post Android-Oracle Connectivity blog. Eso lo ayudará con suerte. Si aún tienes un problema Déjame saber sobre eso.

+0

¿Tiene algún problema con el bloqueo de mayúsculas? Solo las letras superiores se interpretan comúnmente como gritos. – rekire

0

Hay una manera más simple que escribir un servicio web y mantener el mismo nivel de seguridad: utilice un controlador JDBC virtual que utiliza una arquitectura de tres niveles: su código JDBC se envía a través de HTTP a un servlet remoto que filtra el JDBC código (configuración & de seguridad) antes de pasarlo al Controlador Oracle JDBC. El resultado se envía de vuelta a través de HTTP. Hay algunos programas gratuitos que usan esta técnica. Solo busque "Controlador JDBC de Android a través de HTTP".

0

Creo que no hay una manera directa de conectar aplicaciones de Android con Oracle DB. para este propósito, necesita un servicio web de php o java o .net. según mi php es la mejor manera de conectar aplicaciones de Android con una base de datos externa. para esto, debe necesitar un host, una página php. Esta página establece una conexión directa con la base de datos Oracle. para conectar aplicaciones de Android con la página php necesitas un análisis json que es fácil de hacer en el desarrollo de aplicaciones de Android.

+0

¡mira una respuesta abajo! CONEXIÓN DE LA BASE DE DATOS ORACLE CON ANDROID A TRAVÉS DE LAN – Brainsbot

0

También hay una arquitectura robusta de 3 niveles utilizando SAP-Sybase (cable central) con ORACLE. Conecte su base de datos Sybase a ORACLE con el controlador JTDS. Luego, usa tu código de generación en Android.A modo de referencia: SQL Server and Sybase Databases

0

ORACLE conexión de base CON ANDROID A TRAVÉS LAN

subvención algunos permisos Manifiesto

<permission 
     android:name="info.android.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="info.android.permission.MAPS_RECEIVE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

MainActivity Clase

package example.com.myapplication; 

    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import android.os.StrictMode; 

    public class MainActivity extends AppCompatActivity { 

    private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver"; 
    private static final String DEFAULT_URL = "jdbc:oracle:thin:@192.168.0.1:1521:xe"; 
    private static final String DEFAULT_USERNAME = "system"; 
    private static final String DEFAULT_PASSWORD = "oracle"; 

    private Connection connection; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 

     TextView tv = (TextView) findViewById(R.id.hello); 


       try { 
        this.connection = createConnection(); 
        e.Log("Connected"); 
        Statement stmt=connection.createStatement(); 

        ResultSet rs=stmt.executeQuery("select * from cat"); 
        while(rs.next()) { 
         System.out.println("hello : " + rs.getString(1)); 
        } 
        connection.close(); 
       } 
       catch (Exception e) { 
        e.Log(""+e); 
        e.printStackTrace(); 
       } 
      } 

      public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException { 

       Class.forName(driver); 
       return DriverManager.getConnection(url, username, password); 
      } 

      public static Connection createConnection() throws ClassNotFoundException, SQLException { 
       return createConnection(DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD); 
      } 
     } 

requisitos previos son: Nota no hay necesita agregar la dependencia lib ojd bc14.jar simplemente copiar ojdbc14.jar a su jre JAVA_HOME -> lib -> ext & pasta aquí ojdbc14.jar a continuación, comprobar manualmente primera conexión JDBC por cmd/terminal de realizar cualquier programa Java simples http://www.javatpoint.com/example-to-connect-to-the-oracle-database

Cuestiones relacionadas