J'essaie de configurer une base de données Derby intégrée pour une application autonome Java application, mais après avoir parcouru toutes sortes de documentation, je n'arrive pas à trouver d'explications ou d'exemples simples. m utilisant Eclipse avec le plugin Derby et activé la nature Derby pour mon projet.
J'ai trouvé un exemple d'utilisation d'une base de données Derby intégrée dans un carnet d'adresses autonome ainsi qu'un aperçu de l'utilisation de Derby dans Eclipse (qui ne semble pas couvrir le déploiement intégré), mais j'ai toujours l'impression que Il me manque quelque chose de fondamental.
C'est la première fois que j'essaie d'utiliser une base de données avec Java, et je suis un peu confus, alors voici mes questions de base:
Des extraits de code seraient très utiles!
Pour utiliser Derby en Java en mode embarqué, nous devons effectuer les étapes suivantes:
org.Apache.derby.jdbc.EmbeddedDriver
, Situé dans la dépendance derbyclient
Mavenjdbc: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 sur mon Tutoriel de programmation Java JDBC Derby .
Je vous suggère d'utiliser une classe nommée ConnectionDerby, où mettre toute la logique et les paramètres pour sélectionner, insérer, mettre à jour, supprimer et en tant que base de données intégrée, je comprends si une base de données existe déjà, si elle n'existe pas, j'ai créé alors, j'espère que cela le code vous aide, désolé ou mon anglais et je suis novice en utilisant cette base de données 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(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;
}
}
}
Si vous êtes d'accord avec le passage aux netbeans IDE voici deux tutoriels utiles que j'ai pu faire fonctionner dans l'ide (j'ai quelques problèmes mineurs avec le programme d'installation). Il utilise JPA qui est une abstraction qui simplifie beaucoup d'interaction avec la base de données.
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!
Je n'ai jamais fait de derby (bien que je l'ai fait une fois sur mysql) et j'ai tout fait cet exemple simple . En fait, je n'ai même pas lu le discours - je viens de faire défiler vers le milieu où se trouve un exemple explicite.
Ces blogs n url sont très merveilleux mais je proposerai le basculement OP vers NetBeans même si j'ai utilisé la version d ClientDriver
de Java pilotes Derby et je crée une classe ou une méthode pour démarrer la base de données automatiquement au moment du démarrage afin que je ne rencontre aucun SQLException
au moment de l'exécution et que cela fonctionne. Bien que j'utilise la classe NetworkServerControl
pour démarrer ma base de données lors de l'exécution le temps passe comme diz
NetworkServerControl server=new NetworkServerControl(InetAddress.getLocalHost(),1527);
server.start (null);
//Class.forName n DriverManager.getConnection() declarations goes here.