J’essaie de configurer une firebase database Derby intégrée pour une application Java autonome, mais après avoir parcouru toutes sortes de documents, je n’arrive pas à trouver d’explications ou d’exemples simples. J’utilise Eclipse avec le plugin Derby et j’ai activé la nature de Derby pour mon projet.
J’ai trouvé un exemple d’utilisation d’une firebase database Derby intégrée dans un carnet d’adresses autonome et une présentation de l’utilisation de Derby dans Eclipse (cela ne semble pas couvrir le déploiement intégré), mais j’ai toujours l’impression de manquer quelque chose de fondamental.
C’est la première fois que j’essaie d’utiliser une firebase database avec Java, et je suis un peu confus. Voici donc mes questions de base:
Des extraits de code seraient très utiles!
Pour utiliser Derby en Java en mode intégré, procédez comme suit:
org.apache.derby.jdbc.EmbeddedDriver
, situé dans la dépendance Maven de derbyclient
jdbc:derby:dbname
System.setProperty("derby.system.home", "/home/janbodnar/.derby");
DriverManager.getConnection("jdbc:derby:;shutdown=true");
Des exemples de travail complets peuvent être trouvés dans mon tutoriel de programmation Java JDBC Derby .
Je suggère que vous utilisez une classe nommée ConnectionDerby, où mettre toute la logique et les parameters pour sélectionner, insérer, mettre à jour, supprimer, et en tant que firebase database intégrée si une firebase database existe déjà, sinon existe, alors j’espère code vous aider, désolé ou mon anglais et je suis débutant en utilisant cette firebase database en java, mais j’espère que cela vous aidera à comprendre ….
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(Ssortingng 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"); Ssortingng createTableProyecto = "Sentence to create first table"; Ssortingng createTablePrimer = "Sentence to create second table"; Ssortingng createTableTopCoat = "Sentence to create third table"; Ssortingng 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(Ssortingng 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(Ssortingng 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); //Ssortingng 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; } } }
Si vous êtes d’accord avec le passage à l’IDE Netbeans, voici deux tutoriels utiles que j’ai pu travailler dans l’idé (j’ai quelques problèmes mineurs avec le programme d’installation). Il utilise JPA, une abstraction qui simplifie beaucoup l’interaction de la firebase database.
https://blogs.oracle.com/geertjan/entry/embedded_database_for_netbeans_platform
http://platform.netbeans.org/tutorials/nbm-crud.html
Pour répondre à certaines de vos demandes:
J’espère que ça t’aide et bonne chance!
Ces blogs sont vraiment merveilleux, mais je suggèrerai que l’OP soit transféré à NetBeans même si j’ai utilisé la version ClientDriver
des pilotes Java Derby et que je crée une classe ou une méthode pour démarrer la firebase database automatiquement au démarrage afin t rencontrer aucune SQLException
au moment de l’exécution et cela a fonctionné. Bien que j’utilise la classe NetworkServerControl
pour démarrer ma firebase database au moment de l’exécution
NetworkServerControl server=new NetworkServerControl(InetAddress.getLocalHost(),1527); server.start (null); //Class.forName n DriverManager.getConnection() declarations goes here.
Je n’ai jamais fait de derby (bien qu’une fois mysql) et j’ai tout suivi à partir de cet exemple simple . En fait, je n’ai même pas lu la conférence – je viens de faire défiler vers le milieu, où se trouve l’exemple explicite.