sábado, 28 de abril de 2012

Conectar a base de datos de Zoho usando Java





Saludos,

Esta vez haremos una conexion de una base de datos que tendremos en la nube, el servicios nos la ofrecerá Zoho, para los que no saben que es una base de datos en la nube usando Zoho, pondre una explicación auspiciada por Wikipedia.

Zoho es el nombre de un conjunto de aplicaciones web desarrolladas por la empresa estadounidense AdventNet. Para poder utilizar dichas herramientas es obligatorio registrarse y la gran mayoría son de caracter gratuito, aunque muchas de las herramientas se encuentran todavía en fase beta. para mas informacion clic aqui

Lo primero que necesitaremos será tener una base de datos en la nube de Zoho, para esto nos registraremos en la la pagina oficial de la misma http://www.zoho.com/

Una vez registrado, en el panel principal hacemos clic en el link Reports como lo muestra el siguiente pantallazo:



Aquí podemos crear nuestra base de datos y las tablas que esta contendrá.

Lo siguiente que necesitaremos es algo que ellos llaman API key, que es una cadena compuesta de letras, signos y números; para crear nuestra API key que necesitaremos para hacer la conexión de nuestra aplicación de escritorio con la base de datos que está en la nube debemos ingresar como usuario a la pagina de Zoho luego hacemos clic en el siguiente Link.

Pasamos a descargar los Driver que necesitaremos para conectar nuestra aplicación Java, estos Driver, controladores o JDBC que nos los proporciona Zoho por medio de este Link.

Para esta practica usaremos Netbeans (puede ser cualquier otro editor), creamos un proyecto (yo lo llame zoho), los Driver que descargamos en el parrafo anterior lo descomprimirmos y nos ubicamos en la siguiente ruta Zoho/CloudSQLJDBCDriver/lib que esta dentro de la carpeta que acabamos de descomprirmir valga la redundancia; alli observamos seis archivos de extencion .jar.

Los seis archivos .jar antes mensionados los adjuntamos a la libreria de nuestro proyecto haciendo clic derecho sobre Libraries y Add JAR/Foolder como lo muestro en la siguiente imagen:




Nos ubicamos donde tenemos nuestro seis .jar (Zoho/CloudSQLJDBCDriver/lib) y los adjuntamos todos; Nos debe quedar algo así:




Listo, ahora colocaremos el código que nos mostrara la información que tenemos en la base de datos que esta en la nube (si no tenemos información o datos colocamos cualquier cosa con tal de ver que todo ha salido bien), La clase de llamara Sample, que es una modificacion de la que esta de ejemplo en los driver que descargamos salvo que coloque una linea indispensable que no tenia y que no me permitía hacer la conexión.



//$Id$
package zoho;
import java.util.*;
import java.sql.*;
import java.net.URLEncoder;

public class Sample{
 //Configure these vars
 private static final String APIKEY= "";//your key
 private static final String USER = "";//your user name
 private static final String PASSWORD = "";//your password
 /*
 private static final String PROXYSERVER=;
 private static final String PROXYPORT="80";    
 private static final String PROXYUSERNAME=;    
 private static final String PROXYPASSWORD=;    
 */
    
 private static final String DB_NAME= "";//your db name
 private static final String TABLE_NAME="";//your table name

 public static void main(String args[])   throws Exception{
  if (APIKEY.length() == 0){
   throw new RuntimeException("Open this file and configure the variables");
  }
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
      
  DatabaseMetaData dmd = null;
       
  try{
   Class.forName("com.zoho.cloudsql.jdbc.ZohoReportsDriver");
   Properties conProps = new Properties();
   conProps.put("ZOHO_API_KEY",APIKEY);
   conProps.put("user",USER); 
   conProps.put("password",PASSWORD); 
   /*
   conProps.put("PROXYSERVER",PROXYSERVER); 
   conProps.put("PROXYPORT",PROXYPORT); 
   conProps.put("PROXYUSERNAME",PROXYUSERNAME); 
   conProps.put("PROXYPASSWORD",PROXYPASSWORD); 
   */
   conn = DriverManager.getConnection("https://reportsapi.zoho.com/api"// No I18N
                                        + "/" + URLEncoder.encode(USER,"UTF-8")
                                        + "/" + URLEncoder.encode(DB_NAME,"UTF-8"),
                                        conProps);
   String sql = "select * from " + TABLE_NAME + " limit 5";
            
   stmt = conn.createStatement();
            
   rs = stmt.executeQuery(sql);
   ResultSetMetaData rsmd = rs.getMetaData();
    
   while (rs.next()){
    System.out.println("\n");
    for(int i = 1;i <= rsmd.getColumnCount();i++){
     System.out.print(rs.getObject(i));
     System.out.print("\t");
    }
   }
  }finally{
    if (rs!= null){try { rs.close(); } catch (Exception e){ e.printStackTrace();}}
    if (rs!= null){try { stmt.close(); } catch (Exception e){ e.printStackTrace();}}
    if (rs!= null){try { conn.close(); } catch (Exception e){ e.printStackTrace();}}
  }
 }
}
En la variable APIKEY se coloca el AP IKEY que generamos anteriormente y que ya detalle.
En las variables USER, PASSWORD colocamos el usuario y contraseña que usamos para crear nuestro login el la pagina de Zoho.
Por ultimo las variables DB_NAME, TABLE_NAME son el nombre de la base de datos y la tabla que creastes en la nube de Zoho y que consultaras con la aplicación. --------------------------------------------------------------------------------------------------------- Por ultimo les dejo una modestas aplicación de escritorio hecha en Java para conectarse con una base de datos en la nube Zoho:


Como siempre, deseando serles de ayuda. Clic aquí para descargar aplicación..



Entrada destacada

Matriz de adyacencia para un grafo

"La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar relaciones binarias."; aunque pa...