Pregunta sobre netbeans, derby, database-connection, java – conectarse a una base de datos derby basada en archivos

6

Quiero trabajar con una base de datos basada en archivos usando Apache Derby. Me preguntaba si alguien puede determinar cómo conectarse y crear esta base de datos utilizando netbeans como IDE. Pasé por los manuales de Derby tratando de resolver esto, pero todo lo que obtuve fue "Conexión de base de datos JDBC incorporada de Derby", que me dijeron que no es un enfoque basado en archivos, y de cualquier manera, la conexión no parece funcionar. Cualquier ayuda sería muy apreciada.

Creo que la "conexión de Derby JDBC incorporada" es la solución que está buscando. Respondí a continuación, describiendo cómo usar la interfaz de usuario actual de NetBeans IDE para manipular derby. De cualquier manera, sus datos eventualmente serán almacenados en un archivo. La principal diferencia es si elige la ruta incorporada o la ruta del servidor cliente en la que la ruta del servidor cliente requiere un puerto en el sistema operativo que permita a múltiples clientes acceder a la base de datos al mismo tiempo. simgineer

Tu respuesta

4   la respuesta
1

Todos" le permite obtener el servidor de la aplicación glassfish. Después de instalar w / glassfish, en el IDE debería poder seleccionar la pestaña Servicios> Expandir bases de datos y debería ver Java DB. R. Haga clic en Java DB y seleccione Iniciar servidor. Luego, haga clic en R. nuevamente y seleccione Crear base de datos. Introduzca el nombre de la base de datos, el usuario y una contraseña. BTW, normalmente uso APP tanto para el usuario como para la contraseña, porque de esta manera también se convierte en el esquema predeterminado y no tengo que cambiar nada para el entorno de producción.

Ahora, en el grupo Java DB, debería ver la nueva base de datos que creó. R. Haz clic en eso y selecciona Conectar. Debería ver aparecer un elemento de conexión en el grupo Bases de datos. Expanda este elemento y debería ver el esquema de la aplicación en negrita que indica que es el esquema predeterminado. Expanda eso y haga clic en R. Haga clic en las tablas, seleccione Crear tabla y obtendrá una interfaz de usuario que le ayudará a completar una tabla. Repita hasta que se creen todas sus tablas. Otra forma de crear tablas utilizando el ide es hacer clic derecho en las Tablas y seleccionar Ejecutar comando donde puede ejecutar DDL para definir el esquema de las tablas. Esta es la forma en que hago la creación de db, guardando mi script como un archivo .sql para que pueda eliminar el db y volver a ejecutarlo cuando sea necesario.

Este es un ejemplo del script my dbinit.sql que utilizo para crear mis tablas en derby.

create table usertable (
    username varchar(128) NOT NULL CONSTRAINT USER_PK PRIMARY KEY ,
    password varchar(128) NOT NULL,
    email varchar(128) NOT NULL,
    firstname varchar(128) NOT NULL,
    lastname varchar(128) NOT NULL
);

create table grouptable(
    username varchar(128) NOT NULL,
    groupid  varchar(128) NOT NULL,
    CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid),
    CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username)
        ON DELETE CASCADE ON UPDATE RESTRICT
);

insert into usertable(username,password,firstname,lastname) 
    values ('admin', '21232f297a57a5a743894a0e4a801fc3','','');
insert into grouptable(username,groupid) values ('admin', 'USER');
insert into grouptable(username,groupid) values ('admin', 'ADMIN');

Puede eliminar fácilmente la base de datos que ha creado haciendo clic derecho en la base de datos, haga clic en la base de datos que desea eliminar y seleccione eliminar. y reutiliza tu script para regenerarlo.

¡Espero que esto ayude! :)

2

el controlador que desea utilizar es el controlador incorporado en derby.jar. En lugar de entrar en el "lado de la codificación de las cosas", ya que hay suficientes ejemplos, me gusta usar netbeans para hacer todo antes de comenzar la codificación.

Ya que uso el enfoque integrado para convertir los archivos wireshark / tcpdump / nmap en entradas de base de datos, uso un enfoque ligeramente diferente.

Ya que prefiero las últimas versiones estables de Derby en lugar de la versión instalada, tengo un enfoque ligeramente diferente que me permite usar cualquier versión que desee, así como colocar la base de datos en el directorio de datos ar / w donde quiera que esté en el archivo sistema.

Cree: mkdir -p $ HOME / opt / derby y cd ~ / opt / derby.Descargue la última versión de db.apache.org y desagregue la información en $ HOME / opt / derby /Crea el enlace simbólico: ln -spwd/versión pwd/último.Crea el enlace simbólico: ln -spwd/últimopwdNetbeans de inicio.

A partir de aquí podrás hacer todo en netbeans:

Cree una biblioteca de Ant y llámela "ASF-Derby-Emb.": Herramientas-> Bibliotecas de Ant-> Nueva biblioteca.En el panel de configuración, establezca la ruta de clase a /home/[loginid◆/opt/derby/default/lib/derby.jar y, opcionalmente, agregue el derbytools.jar.Haga clic en la pestaña de origen y agregue en la ruta al código fuente si lo ha descargado.Haga clic en la pestaña javadoc y en / home / [loginid] / opt / derby / default / javadocs

Cuando ingrese a la codificación, simplemente agregue en la biblioteca ASF-Derby-Emb y se copiará automáticamente en su 'dist'.

Ahora configura el JavaDB.

Configure la pestaña Servicios: Ventana-> Servicios y seleccione esa pestaña.Seleccione JavaDB y haga clic derecho y detenga la JavaDB que se está ejecutando.Seleccione JavaDB y haga clic con el botón derecho y haga clic en la entrada del menú Propiedades que abrirá un cuadro de diálogo de propiedades.Vaya al directorio de instalación de JavaDB: en $ HOME / opt / derby / default.Deje la ubicación del directorio de instalación de la base de datos tal como está o navegue hasta el directorio donde desea ubicarlo, pero asegúrese de tener acceso de lectura / escritura.haga clic en 'Aceptar' y ahora tiene una ubicación diferente de instalación y base de datos JavaDB.

Con solo cambiar la ubicación de la base de datos, puede colocar una base de datos donde lo desee. O puede lograr lo mismo en el código ya que la url es: jdbc: derby: //directorio de ubicación de la base de datos.

De cualquier manera, ahora puedo configurar mi base de datos.

seleccione JavaDB y haga clic con el botón derecho y seleccione 'Crear base de datos' y simplemente complete el cuadro de diálogo y la base de datos se inicializará en el directorio que se configuró en el archivo de propiedades.Cree una conexión: seleccione JavaDB y luego seleccione el nombre de la base de datos que se ha creado.

Desde este punto hay tres opciones:

No haga nada y cree el código necesario para crear las tablas, etc.Cree un proyecto y cree un directorio de proyecto de nivel superior llamado sql y coloque todos los scripts de sql que definen tablas, etc. en ese directorio.Use la 'facilidad incorporada: Servicio-> jdbc: derby: // ??? y cree las tablas usando la facilidad que aparece y le permite ingresar el sql necesario.

Personalmente, (2) inicialmente encuentro el mejor enfoque. Si tiene scripts sql preexistentes con la extensión .sql simplemente abriéndolos bajo el proyecto, se cargarán en el editor de sql y se pueden ejecutar allí.

Alternativamente se puede usar (3) y guardar el script resultante.

De cualquier manera, mucho se puede crear antes de que comience la codificación. Hay muchas maneras de hacerlo. Preferiría haber creado todo antes de codificar, ya que hace que el desarrollo de casos de prueba sea mucho más sencillo y, al usar lo anterior, no tengo que saltar dentro y fuera de netbeans para modificar cosas.

5

jdbc:derby:foo;create=true, y creará una base de datos llamada foo en el directorio del sistema derby. Si desea crear uno en una ubicación absoluta en su disco duro, especifique una ruta absoluta.jdbc:derby:/home/me/foo;create=true.

Una vez que se crea la base de datos, puede conectarse a ella con la misma url, o puede eliminar la;create=true parte de.

Puede configurar el directorio del sistema derby a través de las propiedades del sistema, por ejemplo,System.setProperty("derby.system.homeSystem.setProp", "/home/bar/whatever");. Creo que deberías hacer esto antes de iniciar una base de datos derby, pero nunca intenté hacerlo después. Descubrí que la configuración del sistema Derby para la aplicación y la especificación de la URL relativa de la base de datos funciona mejor, pero esa es una preferencia personal.

Sí, en Java, siempre te conectas con Derby a través de JDBC. jdbc: derby: es el prefijo para conexiones incrustadas. Es diferente para las conexiones de base de datos de red. Bill
IIRC, el controlador integrado no se auto-registra. Hacer unnew EmbeddedDriver() (Deje que Netbeans elija el correcto para usted; si no lo hace, su ruta de clase es incorrecta), descarte el resultado y luego intente conectarse. Bill
Entonces, ¿jdbc es la versión basada en archivos? Amir.F
en primer lugar, gracias por la respuesta, en segundo lugar, todavía no puedo conectarme a la base de datos, pensé que primero tenía que definir la base de datos, y lo hice a través de la interfaz netbeans (no tengo idea de cómo hacerlo de otra manera ), y eso me dio la url para la base de datos, que es jdbc: derby: history; create = true, moví todos los archivos jar de derby al directorio "lib" de mi proyecto. Todavía recibo un error de "no se encontró el controlador adecuado", así que lo comprobé en otros foros, pero ninguno de lo que dijeron parece funcionar. Me imagino que tiene que ver con el directorio, pero no puedo resolverlo ... Amir.F
0

by, debe descargar,derby

Descomprima el archivo. Ejecute startNetworkServer.bat dentro del directorio bin. Se iniciará el servidor derby que escuchará el puerto no 1527.

Ahora en tu código java:

DriverName = org.apache.derby.jdbc.ClientDriver

ConnectionString = jdbc: derby: // localhost: 1527 / schema_name; create = true

Además, también puede consultar el DB derby como lo hacemos en Oracle.

ejecuta ij.bat ubicado dentro del directorio bin. luego en el indicador:

conectar 'especifique la url de conexión aquí'

y puede disparar las consultas de sql como el indicador de Oracle.

En caso de que desee ejecutar el servidor derby en un puerto diferente, ejecute el siguiente comando en cmd:

startnetworkserver.bat -p 1234

Preguntas relacionadas