versiones password example java embedded-database javadb derby

password - Configuración de una base de datos Derby incorporada en una aplicación Java independiente



netbeans derby sample database password (5)

Esos blogs y url son muy maravillosos, pero sugeriré el cambio de OP a NetBeans aunque ClientDriver versión d ClientDriver de los controladores Java Derby y creo una clase o método para iniciar la base de datos automáticamente en el momento de la puesta en marcha para que no lo haga. t encuentro cualquier SQLException en tiempo de ejecución y ha estado funcionando. Aunque sí uso la clase NetworkServerControl para iniciar mi base de datos en el tiempo de ejecución, como diz

NetworkServerControl server=new NetworkServerControl(InetAddress.getLocalHost(),1527); server.start (null); //Class.forName n DriverManager.getConnection() declarations goes here.

Estoy tratando de configurar una base de datos Derby incorporada para una aplicación Java independiente, pero después de ver todo tipo de documentación, parece que no puedo encontrar explicaciones o ejemplos simples. Estoy usando Eclipse con el complemento Derby y he habilitado la naturaleza Derby para mi proyecto.

Encontré un ejemplo del uso de una base de datos Derby incorporada en una libreta de direcciones independiente , así como una descripción general del uso de Derby en Eclipse (que no parece abarcar la implementación integrada), pero aún siento que me falta algo fundamental.

Esta es la primera vez que intento usar una base de datos con Java, y estoy un poco confundido, así que aquí están mis preguntas básicas:

  • ¿Cuál es la filosofía (o modelo) básica de cómo Java interactúa con una base de datos Derby (en una implementación integrada)? ¿Se deben seguir sus importantes patrones de diseño?
  • ¿Necesito crear algún tipo de constructor de base de datos (que incluya la estructura de la tabla, etc.) en una clase, o eso se hace con alguna otra herramienta?
  • Una vez que se crea y guarda la base de datos, ¿cómo la "inicio"? ¿Y dónde se guarda la base de datos real?

¡Los fragmentos de código serían muy útiles!


Le sugiero que use una clase llamada ConnectionDerby, donde ponga toda la lógica y los parámetros para Seleccionar, insertar, actualizar, Eliminar y, como base de datos incrustada, compruebe si ya existe una base de datos, si no existe, creo. El código te ayuda, perdón o mi inglés y soy novato usando esta base de datos en java, pero espero que esto te ayude a entender ...

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; public class ConnectionDerby { private Connection conn = null; private Statement sttm = null; public Connection CrearBD(String query) { try { //Obtenemos el Driver de Derby Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); conn = DriverManager.getConnection("jdbc:derby:.//BD//nombrebasededatos.db;create=true"); if (conn != null) { //JOptionPane.showMessageDialog(null, "Base de Datos Lista"); try { PreparedStatement pstm = conn.prepareStatement(query); pstm.execute(); pstm.close(); //JOptionPane.showMessageDialog(null, "Base de Datos Creada Correctamente"); System.out.println("SENTENCIA SQL EFECTUADA CORRECTAMENTE"); } catch (SQLException ex) { //JOptionPane.showMessageDialog(null, ex.getLocalizedMessage()); System.out.println(ex.getMessage()); JOptionPane.showMessageDialog(null, "NO SE PUDO EFECTUAR LA SENTENCIA SQL", "Error", JOptionPane.ERROR_MESSAGE); //JOptionPane.showMessageDialog(null, "NO SE PUDO EFECTUAR LA SENTENCIA SQL"); } } } catch (SQLException e) { System.out.println(e.getMessage()); JOptionPane.showMessageDialog(null, "NO SE PUDO EFECTUAR LA SENTENCIA SQL", "Error", JOptionPane.ERROR_MESSAGE); //JOptionPane.showMessageDialog(null, "TRONO LA APLICACION EN EJECUTAR LAS SENTENCIAS SQL parte 2"); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); JOptionPane.showMessageDialog(null, "NO SE PUDO EFECTUAR LA SENTENCIA SQL", "Error", JOptionPane.ERROR_MESSAGE); //JOptionPane.showMessageDialog(null, "TRONO LA APLICACION EN EJECUTAR LAS SENTENCIAS SQL parte 3"); } return conn; } public Connection AccederBD() { try { //Obtenemos el Driver de Derby Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); //Obtenemos la Conexión conn = DriverManager.getConnection("jdbc:derby:.//BD//nombrebasededatos.db"); if (conn != null) { System.out.println("Base de Datos Ya Leida Correctamente"); //JOptionPane.showMessageDialog(null, "Base de Datos Ya Leida Correctamente"); } } catch (SQLException e) { System.out.println(e.getMessage()); System.out.println("Sistema Creado por Mario José Echeverría"); System.out.println("NO SE ENCONTRO LA BASE DE DATOS"); System.out.println("CREANDO BASE DE DATOS EN DERBY DATABASE"); String createTableProyecto = "Sentence to create first table"; String createTablePrimer = "Sentence to create second table"; String createTableTopCoat = "Sentence to create third table"; String createTableCotizacion = "Sentence to create fourth table"; CrearBD(createTableProyecto); CrearBD(createTablePrimer); CrearBD(createTableTopCoat); CrearBD(createTableCotizacion); //*************PRUEBAS***************** } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); System.out.println("ERROR DE TIPO ClassNotFoundException"); //JOptionPane.showMessageDialog(null, "TRONO LA APLICACION EN ACCEDER A LA BASE DE DATOS parte 2"); } return conn; } public void UID(String sqlcad) { try { //Obtenemos el Driver de Derby Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); conn = DriverManager.getConnection("jdbc:derby:.//BD//nombrebasededatos.db"); sttm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); sttm.executeUpdate(sqlcad); System.out.println("Conexión Exitosa a la Base de Datos"); //JOptionPane.showMessageDialog(null, "Conexión exitosa"); sttm.close(); conn.close(); if (conn != null) { System.out.println("Consulta Realizada Correctamente"); //JOptionPane.showMessageDialog(null, "Base de Datos Ya Leida Correctamente"); } } catch (SQLException e) { System.out.println("Error= " + e.getMessage()); } catch (ClassNotFoundException e) { System.out.println("Error= " + e.getMessage()); } } public ResultSet getvalores(String sqlcad) { ResultSet rs = null; try { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); conn = DriverManager.getConnection("jdbc:derby:.//BD//nombrebasededatos.db"); sttm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); //String sqlcad = "Select nombre, m2xgal, pregal, precub, descripcion from primer"; rs = sttm.executeQuery(sqlcad); return rs; } catch (Exception e) { System.out.println("Error= " + e.getMessage()); return rs; } } }


Nunca hice derby (aunque sí lo hice una vez mysql) y me guié por este simple ejemplo . De hecho, ni siquiera leí la charla, simplemente me desplazo hacia el centro donde se encuentra el ejemplo que se explica por sí mismo.


Para usar Derby en Java en modo integrado, debemos realizar los siguientes pasos:

  • Utilice el controlador org.apache.derby.jdbc.EmbeddedDriver , ubicado en la dependencia de Maven de derbyclient
  • Utilice la cadena de conexión para el modo integrado: jdbc:derby:dbname
  • Configure la página de inicio del sistema Derby: System.setProperty("derby.system.home", "/home/janbodnar/.derby");
  • Cierre Derby programáticamente al final: DriverManager.getConnection("jdbc:derby:;shutdown=true");
  • Manejar el error XJ015, que se activa al apagar con éxito

Puede encontrar ejemplos completos de trabajo en mi tutorial de programación Java JDBC Derby .


Si está de acuerdo con cambiar al IDE de NetBeans, aquí hay dos tutoriales útiles que pude obtener en el IDE (tengo algunos problemas menores con el instalador). Utiliza JPA, que es una abstracción que simplifica una gran cantidad de interacción con la base de datos.

https://blogs.oracle.com/geertjan/entry/embedded_database_for_netbeans_platform

http://platform.netbeans.org/tutorials/nbm-crud.html

Para atender algunas de sus consultas:

  1. Si está utilizando java y relación dbs, recomendaría altamente JPA. De lo contrario, está utilizando JDBC para interactuar con su base de datos y utilizando SQL.
  2. Tradicionalmente, se usa una utilidad o se ejecuta un script para crear el esquema de la tabla. Sin embargo, dado que va a integrarse, puede que esté interesado (como yo lo estoy) en que la db y el esquema lo creen de forma dinámica para que no tenga que ejecutar este script. Cada vez que instales tu aplicación. Esto es factible con la configuración JPA incorporada de derby que cubre el tutorial.
  3. si está ejecutando una base de datos Derby incorporada, no hay ningún subproceso o socket que inicie. Su aplicación utilizará el jpa o derby api, que utilizará el bloqueo de archivos para acceder a los archivos derby. En mi definición, una base de datos incrustada no tiene una secuencia o proceso por separado en un socket que maneja solicitudes múltiples.

¡Espero que esto ayude y buena suerte!