Custom Search
Bloggers Activos
La evolución del Programador mandrake
Darwin no perdió la fe por desarrollar la teoría de la evolución blacksoul
El Dalai Lama dice: vendaval
Religión, fanatísmo o Terrorismo? blacksoul
Dani people's vaio chilicuil
Una Canción Triste vendaval
¡Lo hemos conseguido! der_teufel
Log continuacion del curso de BD.. rnstux
F.A.Q. del borracho mandrake
Logotipo de Apple mandrake
Last Download
Segunda Fundación
Segunda Fundación
Continuación del Curso de DB
rnstux
Libro de Servidores GNU/LINUX Licencia CC
vendaval
FreeBSD hacking (Kernel Modules Programming)
vendaval
Powered by Blender!
rnstux
Primer Curso de BD en IRC
rnstux
ZFS - A Smashing Hit
asarch
Screencast
aarkerio
Manda al diablo a Telcel
asarch
Seguimiento de Cuba...
vendaval
Gentoo Linux 2008.0 released
asarch
Google Groups Karamelo
Visit this group
GNU/Linux
GNU/Linux
Hacktivismo
Hacktivismo
Debian
Debian
NetBSD
NetBSD
WWW
WWW
Guia Linux
Guia Linux
Server Side
Server Side
Ofimatica
Ofimatica
Despabilando...
Despabilando...
Mundo Maya
Mundo Maya
Literatura
Literatura
Agora
Agora
Psicologia
Psicologia
Economia
Economia
Ambientalismo
Ambientalismo
Desarrollo
Desarrollo
Biologia
Biologia
Comercio Justo
Comercio Justo

Hacktivism

LinuxChix button

Server Side \ Firebird y Java sobre XP
Server Side
Firebird y Java sobre XP

Este artículo ha sido consultado en 2,239 ocasiones.

Desarrollando una aplicación libre con Java sobre Windows XP

Firebird



Si, (hagas lo que hagas) ese día tan cuidadosamente evitado llegará: el día en que te ves en la repugnante situación de desarrollar tu precioso código Java en un equipo Windows XP ¡yaaaacc!, ¡que asco! ¡Pero un momento!, aún cuando estés trabajando en un equipo windows puedes desarrollar aplicaciones libres, en este tutorial se muestra como implementar una página web que muestra registros de una base de datos Firebird usando tecnología java en un sistema Windows XP.

Por supuesto necesitaremos el JDK de SUN para desarrollar en Java. Claro, si es java y es Web debemos descargar Tomcat, Websphere es desesperante en su configuración y los manuales de IBM son poco menos que ilegibles, otra opción de webserver serían Iplanet, pero está escasamente documentado y cada vez se usa menos. También necesitaremos una base de datos, me gusta PostgreSQL, desgraciadamente no hay versión para windows y eso de estarse bajando el cygwin y los dlls y bla, bla, bla... mejor ahí muere. Existe Mysql para Windows, pero no es libre cuando corre en ese sistema operativo así que había que pagar la licencia mmmmm.... no. Pero tenemos una muy buena opción, el chico nuevo del barrio Open Source se llama Firebird, es una versión libre de Interbase, la base de datos de Borland, es portable, flexible y eficiente, descargaremos la versión superserver que tiene algunas mejoras. También necesitaremos su JDBC.

¿A que engañarse?, tu y yo lo sabemos: el MS Explorer renderiza caprichosamente los javascripts, no sigue los estándares del W3C lo cual lo hace caótico y no tiene pestañas (tabs), de modo que hay que abrir una nueva ventana cada vez que quieres ver un link colateralmente. La depuración de javascripts y CSS es mucho más lograda con Mozilla, asi que descargamos e instalamos a nuestra querida super-lagartija.

Un buen editor es necesario para trabajar con java, si se tiene un equipo con buenos recursos se puede instalar Netbeans. En lo personal uso el excecelente editor Jedit, tiene un plugin manager de lo más interesante, en fin, cualquier cosa pero sobreescribe el notepad que viene con windows.

Hace dos años instalar el JDK y Tomcat era un pequeño reto, pero ahora es bastante ñoño con el JDK 1.4 y Tomcat 4.12. Tomcat deber ser instalado en directorio c:\tomcat. Ahora creamos el directorio "firebird" en c:\ y en ese directorio instalamos la base de datos. Iniciamos firebird ejecutando el archivo c:\firebird\bin\ibserver.exe. En Windows 95 y 98 era necesario modificar el archivo c:\windows\services y agregar la linea:

gds_db 3050/tcp # firebird

Esto abría el puerto 3050 para firebird, en versiones posterioes de windows esto ya no es necesario. Para que firebird trabaje bien debemos colocar dos variables de entorno isc_user y también isc_password, para ello en MiPC seleccionamos Propiedades->Avanzadas->Variables y agregamos: isc_user=sysdba isc_password = masterkey y OK. Para saber si las variables ya están en el entorno abrimos una terminal y tecleamos:

C:\>echo %isc_user%

Nos debería de pintar en pantalla sysdba. Si las variables ya están en el ambiente nos cambiamos al directotorio de firebird: C:\>cd firebird\bin . Ahora nos logeamos al programa que maneja los usuarios de firebird, es decir GSEC:

C:\firebird\bin>gsec -user sysdba -password masterkey

Si todo va saliendo bien debemos ver un puntero asi:

GSEC>

Podemos teclear "help" para conocer las opciones de este programa. Ahora creamos el usuario mmontoya:

GSEC>add mmontoya -pw mex99 -fname Manuel -lname Montoya

Donde mmontoya es el nombre del nuevo usuario y mex99 es el password del usuario, la opción -fname se refiere al nombre de pila del usuario mientras -lname es el apellido.

Con el comando "display" vemos los detalles de los usuarios

GSEC>display

Es importante modificar el password del administrador pues todo mundo conoce 'masterkey' y basta un escaneado de puertos con el programa hackeril nmap para que el puerto 3050 delate a Firebird. Asi que:

GSEC>modify sysdba -pw newpass

Y nos salimos del programa:

GSEC>quit

Aqui hay información mas extensa sobre la seguridad y los usuarios en Firebird.

Por supuesto, habrá que modificar nuestra variable de entorno isc_password para darle su nuevo valor.

Con el explorador de Windows creamos el directorio "datos" en raíz de c: Ahora iniciamos la interface SQL de Firebird:

C:\firebird\bin>isql

Nos conectamos la base de datos de ejemplo:

SQL>CONNECT "C:\Program Files\Firebird\examples\Employee.gdb" user 'mmontoya' password 'mex99';

Creamos la base de datos ventas: 

SQL>CREATE DATABASE 'c:\datos\Ventas.gdb';

Ahora creo la tabla usuarios: 

SQL>CREATE TABLE usuarios
SQL>(
SQL>ID integer NOT NULL,
SQL>Nombre VARCHAR(30) NOT NULL,
SQL>Apellido VARCHAR(100) NOT NULL,
SQL>PRIMARY KEY (ID)
SQL>);

Doy permisos al usuario mmontoya  sobre esa tabla:

SQL>GRANT SELECT,DELETE,INSERT,UPDATE ON usuarios TO mmontoya;

Firebird no tiene ese maravilloso tipo serial de PostgreSQL que genera un autoincremento para el index de las tablas, en vez de eso debemos crear un generator que indique a Firebird que se debe agregar un consecutivo al campo ID de la reciém creada tabla usuarios:

SQL>CREATE GENERATOR usuarios_gen;

Coloco el generador usuarios_gen en 1:

SQL>SET GENERATOR usuarios_gen TO 1;

Creo el trigger para el autoincrement con el método GEN_ID( )  de Firebird:

SQL>CREATE TRIGGER usuarios_autoinc FOR usuarios
SQL>BEFORE INSERT AS
SQL>BEGIN
SQL> IF (NEW.ID is NULL) THEN
SQL> NEW.ID = GEN_ID(usuarios_gen, 1); END;
SQL>commit;

Inserto tres registros a mano para comprobar que todo funciona: 

SQL>INSERT INTO usuarios (Nombre, Apellidos) VALUES ('Miguel de Icaza', 'Cerrada del Mono No.128');
SQL>INSERT INTO usuarios (Nombre, Apellidos) VALUES ('Linus Torvald', 'Santo Barbara No. 90');
SQL>INSERT INTO usuarios (Nombre, Apellidos) VALUES ('George W Bush', 'Jerk Park No. 908');

SQL>commit;

También puedo poner todos los comandos SQL en un archivo datos.sql e importarlo desde el prompt asi:

SQL>IN c:\datos\datos.sql;

Si deseamos renombrar una columna la sintaxis es:
ALTER TABLE <tabla> ALTER COLUMN <nombre> TO <nuevo_nombre>;

Bien, ahora descomprimimos el jdbc y colocamos los archivos .jar en C:\tomcat\common\lib, no debemos colocar el directorio lib que se crea al momento de descomprimir el JDBC en C:\tomcat\common\lib, sólo los *.jar. De modo que el directorio queda asi:

Verificamos que Tomcat está activo colocando mozilla en http://localhost:8080/

Colocamos el archivo firebird.jsp en el directorio C:\tomcat\webapps\ROOT:

<%
// Inicio de firebird.jsp
%>
<%@ page import="java.sql.*" %>
<%
out.println("Aqui ya estoy en el JSP!!");

try{
out.println("Entre al try!!");

//Levanto el JDBC
Class.forName("org.firebirdsql.jdbc.FBDriver");

Connection con = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:c:\\datos\\Ventas.gdb", "mmontoya", "mex99");

String Query = "SELECT * FROM usuarios";

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(Query);

//Variables del query
int ID = 0;
String NOMBRE = new String();
String APELLIDO = new String();

while (rs.next()) {
ID = rs.getInt(1);
NOMBRE = rs.getString(2);
APELLIDO = rs.getString(3);
%>

<table align="center" border="1" >
<tbody >
<tr bgcolor="#c0c0c0">
<td align="center" bgcolor="#c0c0c0"> <b> ID </b> </td>
<td align="center" bgcolor="#c0c0c0"> <b> Nombre </b> </td>
<td align="center" bgcolor="#c0c0c0"> <b> Apellido </b> </td>
</tr>
<tr>
<td > <%=ID%> </td>
<td > <%=NOMBRE%> </td>
<td > <%=APELLIDO %> < /td >
</tr>  

<%
}// fin del rs.next

out.println("</tbody> </table>");

// Libero memoria
rs.close();
stmt.close();
con.close();

} //Fin del try

catch(Exception e) {
out.println("El error fue:"+ e +"<br>");
}
out.println("Acabe!!");
//Fin de firebird.jsp
%>

Apuntamos mozilla a http://localhost:8080/firebird.jsp y ya debemos ver nuestra tabla.

El sitio Firebird.com.mx es un buen lugar para conocer más sobre esta excelente base de datos.


Última actualización: 2007-04-29 10:56:59-05

Printable version

Add comment:



Captcha




Que estas haciendo?
rnstuxrnstux está:
checa esto!! agregale lógica y listo. http://tinyurl.com/5s7ttw
2 hours, 14 minutes ago

rnstuxrnstux está:
WTF?..
2 hours, 18 minutes ago

chilicuilchilicuil está:
Algun mononeuron sabra como agregar excepciones al firewall de win xp sp2 con vb6?
5 hours, 56 minutes ago

mandrakemandrake está:
Aarkerio como va el cyber? con linux
6 hours, 14 minutes ago

asimovasimov está:
Tremulous, Tremulous!
10 hours, 35 minutes ago

vendavalvendaval está:
OpenArena or AlienArena or Tremulous or others?
1 day, 1 hour ago

Que estuvimos haciendo >>
Chipotle Software

Uso OpenOffice.org
Una vez a la semana
Nunca
Uso otra ofimática
Todos los días
Una vez al mes
Rapiditas
Problemas de Lenguaje en niños
13657 lecturas
Anticoncepción de Emergencia
11439 lecturas
Sexualidad infantil y juvenil
11055 lecturas
Rompiendo cualquier clave WEP en unos pocos minutos
8635 lecturas
Sinapsis y exocitosis
8073 lecturas
Mi primer CakePHP, mmmmm cakeee
6325 lecturas
Evolución filética en las hepáticas
5913 lecturas
BASH y Primeros Comandos
4874 lecturas
CakePHP II Active Record
4643 lecturas
Cómo convertirse en hacker
4218 lecturas
Add to Technorati Favorites

ir arriba
La poesía es indispensable, pero me gustaría saber para qué. J. Cocteau

The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework XHTML GNU Hacker Chipotle Software

Too Cool for Internet Explorer