document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2.  
  3. Esta colaboración la hago porque me he sumado al esfuerzo y apoyo de Alejandro Alcalde, ya que él
  4. implementó la conexión de android con SQLSERVER 2008. En vista de que en internet casi no hay información
  5. de que alguien lo ha realizado, y para empeorar las cosas hay muchas afirmaciones de que no se puede conectar
  6. android a ninguna base de datos, solamente con un webservice (y no se recomienda otra forma que no sea esta).
  7. Yo encontré nada más el post de Alejandro Alcalde, a partir de ahí pude realizar la conexión y me di a la
  8. tarea de implementarlo para oracle y mysql también y compartirlo con quien lo necesite.
  9. (En este post tratamos el caso de oracle).
  10.  
  11. Escenario:
  12. * Base de datos Oracle 10g.
  13. * Android API 2.2.
  14. * Eclipse Helios Service Release 2.
  15.  
  16. NOTA: Antes de lograr que funcionara tuve problemitas con encontrar la clase jdbc adecuada para conectarme. Probé las siguiente sin éxito:
  17. ojdbc5.jar y ojdbc6.jar. En el caso de la ojdbc5.jar yo la utilizo en una aplicación que hice anteriormente, conectándome a la misma base de datos, pero no me funciona con android en este caso.
  18.  
  19. Así que en el tercer intento con ojdbc14.jar acerté.
  20.  
  21. A continuación les detallo puntualmente la implementación de la clase:
  22.  
  23. 1. Agregar al buildpath la librería ojdbc14.jar. La cual pueden bajar del siguiente enlace:
  24.  
  25. http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html
  26.  
  27. 2.  Clase de conexión:
  28.  
  29. ***El esquema SCOTT viene con datos de prueba, cuando instalé mi base de datos oracle. *******/
  30.  
  31. package org.pkg.conn;
  32.  
  33. import java.io.PrintWriter;
  34. import java.io.StringWriter;
  35. import java.sql.DriverManager;
  36. import java.sql.ResultSet;
  37. import java.sql.SQLException;
  38. import java.sql.Statement;
  39. public class ConnOracle {
  40.     private java.sql.Connection con=null;
  41.     private java.sql.Statement stmt;
  42.     public ResultSet resultado;
  43.     //consulta: sentencia sql. modo: 1->insert, delete, update. 2->select.
  44.     public String consultaOrcl(String consulta, Integer modo)
  45.     {
  46.         String regs ="";
  47.         StringWriter sw = null;
  48.         PrintWriter pw = null;
  49.         try
  50.         {
  51.             String driver = "oracle.jdbc.OracleDriver";
  52.             String ulrjdbc = "jdbc:oracle:thin:SCOTT/PASSWORD@SERVER_IP:1521:SERVICE_NAME";
  53.             Class.forName(driver).newInstance();
  54.             con = DriverManager.getConnection(ulrjdbc);
  55.             stmt = (Statement) con.createStatement();
  56.             //modo=1 -> insert,update,delete; modo=2 -> select
  57.             if (modo == 1)
  58.             {
  59.                 stmt.executeUpdate(consulta);
  60.             }
  61.             else
  62.             {
  63.                 resultado = (ResultSet) stmt.executeQuery(consulta);
  64.             }
  65.             while (resultado.next())
  66.             {
  67.                 regs = regs + "EMPNO: " + resultado.getString(1) + " ENAME: "+ (resultado.getString(2)) + " JOB: "+ (resultado.getString(3))+"\\n";
  68.             }
  69.             try
  70.             {
  71.                 resultado.close();
  72.                 stmt.close();
  73.                 con.close();
  74.             }
  75.             catch (SQLException e )
  76.             {
  77.                 sw = new StringWriter();
  78.                 pw = new PrintWriter(sw);
  79.                 e.printStackTrace(pw);
  80.                 return "\\r\\n" + sw.toString() + "\\r\\n";
  81.             }
  82.         }
  83.         catch (Exception ex)
  84.         {
  85.             sw = new StringWriter();
  86.             pw = new PrintWriter(sw);
  87.             ex.printStackTrace(pw);
  88.             return "\\r\\n" + sw.toString() + "\\r\\n";
  89.         }
  90.         return regs;
  91.     }
  92. }
');