Había oído hablar de "derby", pero no tenía muy claro su uso ni ventajas. Aunque aún estoy en ello, creo que puedo ver claramente estas ventajas, así que voy a contar cómo usarla.
Ventajas
Las grandes ventajas de Derby son:- Es una base de datos nativa en java
- El núcleo y el driver ocupan menos de 3Mb
- Aunque tiene modo cliente-servidor, se pude embeber en nuestra aplicación.
- Es libre (licencia Apache).
- Compatible con SQL estándar.
Derby para pruebas
Cuando estamos realizando pruebas, a menudo necesitamos una BBDD limpia. Derby tiene un modo "en memoria" que nos permite realizar las pruebas necesarias sin necesidad de tener una BBDD real.Para comenzar, basta seleccionar el driver:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
conn = DriverManager.getConnection("jdbc:derby:memory:derbyDB;create=true");
Statement s = conn.createStatement();
s.execute("create table ejemplo(id int, codigo varchar(50)");
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class MyTester
{
private Connection conn;
@BeforeClass
public void classSetUp()
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
}
@Before
public void setUp()
{
conn = DriverManager.getConnection("jdbc:derby:memory:derbyDB;create=true");
Statement s = conn.createStatement();
s.execute("create table ejemplo(id int, codigo varchar(50)");
s.close();
}
@After
public void tearDown()
{
conn.close();
}
}
Es más lento que probar una función que no accede a BBDD, pero más rápido que crearte una BBDD nueva cada vez.
Derby en un entorno de producción
Para utilizar Derby con un archivo, basta cambiar la forma de obtener la conexión:conn = DriverManager.getConnection("jdbc:derby:/ruta/archivo;create=true");
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/MyDbTest;create=true");
Quiero usar esta maravilla
Los que me conocen saben que me he vuelto un Maven-adicto, así que la manera más simple de comenzar a usarlo es añadir lo siguiente a nuestro pom.xml:<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.7.1.1</version>
</dependency>
Referencias
- Derby en memoria: http://wiki.apache.org/db-derby/InMemoryBackEndPrimer
- Tutorial: http://db.apache.org/derby/papers/DerbyTut/index.html
0 comentarios:
Publicar un comentario en la entrada