Tag Archives: apache

Apache Derby en Ubuntu!

Derby es un producto de Apache DB Project y desde la versión 6 de Java viene incluida en el JDK.

Se trata de una base de datos relacional y transaccional que ocupa muy poco espacio en disco y tiene una necesidad mínima de administración. Además soporta el almacenamiento de una base de datos archivada en un archivo JAR, lo que permite distribuir simplemente el archivo JAR.

Para probarlo en ubuntu, primero hay que instalar el jdk

sudo apt-get install sun-java6-jdk sun-java6-javadb

Después hay que configurar las variables de entorno


export JAVA_HOME=/usr/lib/jvm/java-6-sun/
export PATH=$JAVA_HOME/bin:$PATH
export DERBY_HOME=/usr/lib/jvm/java-6-sun/db
cd /usr/lib/jvm/java-6-sun/db/bin
./setEmbeddedCP
export CLASSPATH=$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar:.

Y ya podemos probar a conectarnos a una bd de ejemplo con:

java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:/usr/lib/jvm/java-6-sun/db/demo/databases/toursdb';
ij> select * from countries;

Ahora probamos a crear nuestra propia bd (se crea en el dir desde el que se lanza ij)

java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:DerbyTestDB;create=true';
ij> create table personas(nombre varchar(20), apellido varchar(50), apellido2 varchar(50));
ij> insert into personas values('Manolito', 'Gafotas', 'Pérez');
ij> insert into personas values('Mafalda', 'Mateo', 'González');
ij> select * from personas;
ij> disconnect;
ij> exit;

Por último podemos probar a conectarnos a la bd que hemos creado desde un programa java como el siguiente:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.util.Properties;

public class DerbyTestDBClient
{
public static void main (String [] args)
{
DerbyTestDBClient testClient = new DerbyTestDBClient();
testClient.showPersons();
}

public void showPersons()
{
try{
String driver = "org.apache.derby.jdbc.EmbeddedDriver";

Class.forName(driver).newInstance();
Connection conn = null;
conn = DriverManager.getConnection("jdbc:derby:DerbyTestDB");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT nombre, apellido FROM personas");
while(rs.next())
{
System.out.println("Nombre : " + rs.getString(1));
System.out.println("Apellido : " + rs.getString(2));
System.out.println();
}
rs.close();
s.close();
conn.close();
}catch(Exception e){
System.out.println("Exception: " + e);
e.printStackTrace();
}
}
}