jQuery Grid Plugin – JSP

Estoy de regreso…

En los últimos 3 meses estuve trabajando en un proyecto, una aplicación web. Uno de los puntos fue la elección del Grid a utilizar para la visualización de datos.

Decidí utilizar jqGrid un plugin mas JQuery, en realidad es muy funcional y practico en cuanto a código se refiere .

Hoy traigo una simple manera de implementar este Grid con JSP y JSON:

Ya que se ha descargado el plugin de la pagina de descargas iniciamos con la implementación.

Se intenta que logres algo parecido a este ejemplo:

De dahico

La declaración del Grid entre las etiquetas HEAD.

<script type=”text/javascript”>
$().ready(function() {
var windowWidth = (document.documentElement.clientWidth – 100) /1.2;

jQuery(“#gridUsuarios”).jqGrid({
url:’getGriddahico.jsp’,
datatype: “json”,
colNames:['id_Usuario','Usuario','Email','Fecha/Hora'],
colModel:[
{name:'id',index:'id_Usuario', width:10, hidden:true},
{name:'Usuario',index:'usuario_Usuarios', width:150},
{name:'Email',index:'email_Usuarios', width:350},
{name:'Fecha/Hora',index:'timestamp_Usuairo', width:150},
],
rowNum:10,
rowList:[10,20,30],
multiselect: true,
pager: ‘#pagGrid’,
sortname: ‘id_Usuario’,
viewrecords: true,
sortorder: “desc”,
width: windowWidth,
height: “100%”,</code>
// nSelectRow: Evento,
caption:”dahicotux.wordpress.com”
});

jQuery(“#gridUsuarios”).jqGrid(‘navGrid’,'#pagGrid’,{edit:false,add:false,del:false});

});
</script>

Y entre las etiquetas BODY no es necesario nada mas que crear un tabla con ID con el que declaramos el Grid en este caso #gridUsuarios y un DIV  para el área de la paginación en este caso #pagGrid.

<div>
<table id=”gridUsuarios”></table>
<div id=”pagGrid”></div>
</div>

Ahora vamos a trabajar el codigo de lado del servidor en este caso sera una pagina JSP la cual ya esta declarada como parámetro url en el grid  url:’getGriddahico.jsp’.

<%–
Document   : getGriddahico
Created on : 4/02/2010, 11:00:58 PM
Author     : @dahico
–%>

<%@page import=”java.sql.*” %>
<%@page import=”app.classes.conexion” %>

<%
int start=0;
int total=0;
int total_pages =0;

int intpage = new Integer(request.getParameter(“page”));
int limit = new Integer(request.getParameter(“rows”));

String sidx = request.getParameter(“sidx”);
String sord = request.getParameter(“sord”);

String strQuery=”";
String json =”";

boolean rc;

ResultSet rs = null;

if(sidx ==”"){
sidx =”1″;
}

//Conexión a la base de datos
conexion  conexiondb = new conexion();
conexiondb.Conectar();

total = conexiondb.countRec(“id_Usuario”, “tbl_Usuario”);

if( total>0 ) {
double d = Math.ceil( (double)(total) / (double)(limit) );
total_pages = (int)(d);
} else {
total_pages = 0;
}

if (intpage > total_pages) {
intpage=total_pages;
}

start = limit * intpage – limit;

if(start < 0 ){
start = 0;
}

strQuery = “SELECT * FROM tbl_Usuario ORDER BY “+sidx + ” ” +sord +” LIMIT “+start+” , “+limit;

rs = conexiondb.Consulta(strQuery);

total = conexiondb.countRec(“id_Usuario”, “tbl_Usuario”);

response.setContentType(“text/x-json”);
response.setCharacterEncoding(“utf-8″);
response.setHeader(“Pragma”, “no-cache”);
response.setHeader(“Cache-Control”, “no-cache, must-revalidate”);
response.setHeader(“Pragma”, “no-cache”);

json =”";
json = json + “{\n”;
json = json + ” \”page\”:\”"+intpage+”\”,\n”;
json = json + “\”total\”:”+total_pages+”,\n”;
json = json + “\”records\”:”+total+”,\n”;
json = json + “\”rows\”: [";
rc =false;

while(rs.next()){

if(rc){
json = json + ",";
}
json = json + "\n{";
json = json + "\"id\":\""+rs.getInt("id_Usuario")+"\",";
json = json + "\"cell\":["+rs.getInt("id_Usuario")+"";
json = json + ",\""+rs.getString("nombre_Usuario")+"\"";
json = json + ",\""+rs.getString("email_Usuario")+"\"";
json = json + ",\""+rs.getString("timestamp_Usuario")+"\"]“;
json = json + “}”;

rc=true;
}
json = json +”]\n”;

json = json +”}”;

out.print(json);
out.close();

%>

Para este ejemplo utilice una tabla en Mysql con la siguiente estructura:

CREATE TABLE `dahicotux`.`tbl_Usuario` (
`id_Usuario` INT  NOT NULL,
`nombre_Usuario` VARCHAR(10)  NOT NULL,
`email_Usuario` VARCHAR(150)  NOT NULL,
`timestamp_Usuario` TIMESTAMP  NOT NULL,
PRIMARY KEY (`id_Usuario`)
)
ENGINE = MyISAM;

Esta es solo una manera de implementar el Grid, les recomiendo leer la documentación para aprovechar al máximo sus funcionalidades.

Por ahora esto es todo, en lo próximos días espero profundizar en el tema ya que no se sabe cuando necesitaras un grid.

Mysql GUI Tools en Ubuntu 9.04

El día de hoy me di la tarea de formatear mi laptop e instalar nuevamente Ubuntu 9.04. Después de haber almacenado toda mi información respaldada, me dispuse a instalar todas las aplicaciones que diariamente utilizó por mi trabajo.

Unas de ellas fueron las herramientas gráficas para manejar Mysql (MySQL GUI Tools), y pues de esto salio este post:

Vamos a el sitio de MySQL a descargar los archivos.

mysql-gui-tools-1

Una vez que se han descargado los archivos , se descomprimen.

Ya hecho esto, movemos la carpeta al directorio /opt , podemos hacerlo desde la terminal:
sudo mv mysql-gui-tools-5.0 /opt/

mysql-gui-tools-2

Nos movemos al directorio:
cd /opt/mysql-gui-tools-5.0

No aseguremos que se hayan transferido los archivos:
ls

Ya que esta todo confirmado y estamos dentro del directorio ejecutamos :
./mysql-query-browser
Para correr Mysql Query Browser

O bien, si la prisa es mucha y el tiempo es poco, como me paso a mí. Podemos ir al menú Sistema->Administración->Gestor de Paquetes Synaptic y buscamos
mysql-admin e instalamos .

mysql-gui-tools-3

Editor PHP online

PHPANYWHERE.net

Sin duda, es de mucha ayuda este sitio, para esos momentos en los que te inspiras y no tienes tu computadora y tienes que usar otra y no tiene el tu IDE para desarrollar. Este sitio puede ser muy útil para esos momentos, un editor de PHP en linea, el cual funciona con la mayoría de los navegadores.

onlinephpeditor_screenshot

Ahora si, ya no tienes pretexto!!!

Que buenos tiempos !!!

Abriendo el baúl de los recuerdos me encontré estas fotos de antaño, de aquel pequeño grupo de jóvenes visionarios que se reunían en mi casa para programar (por cierto de los mejores programadores que he conocido :P ).

El buen Federico Valladares : Fiel amigo del debugueador y de las piernitas de pollo picositas.

El buen Javier Alvarado El “Xavi” : y su código perfecto ;) .

El buen Fernando Vital : que, que, que, que? notable, sobresaliente DBA.

y

Yo :P .

La verdad que buenos tiempos, pero bueno, solo otro buen proyecto nos volverá a reunir, para trabajar juntos de nuevo. Bueno hasta aquí que estoy a punto de llorar….. jaja.

dahicoxavikikofer1

Execute Query | Oracle 10g XE | Ubuntu 8.10

Execute Query es un cliente JDBC desarrollado en Java. Utilizando el poder de Java Database Connectivity (JDBC), permite crear desde una simple consulta hasta la creación de tablas y la importación y exportación de todo un esquema de datos.

Execute Query funciona en entornos como MS Windows , GNU/Linux, Solaris y Mac usando Java Runtime Environment v1.5 – Java v1.5.0 (que se recomienda como mínimo).

Hace tiempo instale Oracle 10g XE en Ubuntu, para probar unas aplicaciones que tengo en Java, pero necesitaba un buen cliente asi es que me encontre con EQ y me ha funcionado muy bien.

Así es que lo descargue desde su sitio en donde puedes conocer mas de la aplicación.

Una vez que terminó la descarga inicié la instalación para esto es recomendable hacer una revisión previa de los requisitos del sistema, como lo es por ejemplo contar con Java Runtime Environment v1.5 – Java v1.5.0 como mínimo y el driver JDBC el cual puedes descargar desde aquí.

Ya que tenía todo listo , fui a la poderosa terminal y me moví hasta el directorio que contenía el instalador de EQ una ves situado ahi desde la misma terminal se corre el instalador de la siguiente manera:

java -jar executequery-installer-v3.1.3.jar

Una vez que se instaló en el directorio que se eligió, en mi caso (/usr/local/share/executequery/), ahora se ejecuta el siguiente script eq.sh

./eq.sh

Si al correr el script no inicia el sistema talves tengas editar el archivo indicandole la ruta del JRE, en mi caso:

# determine the java command to be run
JAVA=/usr/lib/jvm/java-6-openjdk/jre/bin/java

Ya que hemos iniciado EQ , ahora instalaremos el driver JDBC que hemos descargado antes.

ExecuteQuery

Para ello, iniciamos EQ y vamos a la pestaña de drivers.
DriversEQ

Presionamos el boton New Driver y le indicamos los datos en el formulario, Nombre del Driver, su descripción, la Base de Datos en este caso ORACLE , JDBC URL, el Path del Driver el Nombre de la Clase .

newDriver

Ahora ya tenemos instalado el driver, solo es cuestión de crear la conexión a la base de datos, para ello, iremos a la pestaña Connections, justo a lado izquierdo de la pestaña Drivers, ahi es un proceso similar en donde presionaremos sobre el boton New Connection y le indicamos los datos al formulario presionas el boton Connect, en mi caso es algo así:

newConexion

Listo ahora ya esta funcionando EQ, podras explorar, consultar y manipular tus datos, Que te diviertas !!! :P .

references

Seguir

Get every new post delivered to your Inbox.