mostrar - java derby database
consultar base de datos incrustada en netbeans utilizando derby (2)
Nos dijiste I have created an embedded database ... and added data to it.
Por lo tanto, esta base de datos debe ser visible en los servicios de Netbeans.
NO ;create=true
¡ ;create=true
!
Debe conectarse con la misma URL que ve en las propiedades. Nada mas.
Expanda la URL de la base de datos o mire la parte inferior.
con = DriverManager.getConnection("jdbc:derby:C:/Dokumente und Einstellungen/Administrator/.netbeans-derby/sample","app","app");
En el modo incrustado, Derby se ejecuta dentro de la JVM (Java Virtual Machine) de la aplicación. En este modo, solo la aplicación puede acceder a la base de datos, por ejemplo, otro usuario / aplicación no podrá acceder a la base de datos.
Solo una Aplicación puede acceder a la Base de Datos.
Así que desconecte en Netbeans Services, la base de datos a la que desea conectarse en su aplicación.
Creé una base de datos integrada usando netbeans y agregué datos a ella. así que ahora quiero consultar la base de datos, el código se ejecuta sin problemas pero no muestra datos. Aquí está mi código:
import java.sql.*;
public class EmbeddedDB
{
public static void main(String[] args)
{
Connection con = null;
Statement st = null;
ResultSet rs = null;
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
con = DriverManager.getConnection("jdbc:derby:CustDB;create=true", "app", "app");
System.out.println("connected");
st = con.createStatement();
System.out.println("statement created");
rs = st.executeQuery("select * from APP.TABLEX");
System.out.println("retrieving ...");
System.out.println(rs.getString(1));
}
catch(ClassNotFoundException | SQLException c)
{
}
}
}
¿Entonces, Cuál podría ser el problema? la base de datos fue creada en un modo incrustado.
Me gustaría agregar una aclaración importante a la respuesta anterior, porque me encontré un poco perdido durante horas tratando de hacer que esto funcionara. Mi punto es que entiendas cómo funciona la pestaña de servicios de Netbeans con bases de datos derby integradas. Cuando usas:
con = DriverManager.getConnection("jdbc:derby:CustDB;create=true", "app", "app");
Crea la base de datos en el mismo directorio que su proyecto netbeans. Puede cambiar este comportamiento agregando una ruta de directorio:
jdbc:derby:directory_path/CustDB;create=true
Entonces, cuando ejecuta su programa, creará la base de datos en la ruta especificada.
Ahora, cuando está creando una conexión a una base de datos incrustada en la pestaña de servicios, se está conectando a una base de datos existente o creando una nueva. Voy a usar el ejemplo de Green:
Una vez que ejecutas por primera vez el código de la primera publicación con
jdbc:derby:CustDB;create=true
Usted crea una base de datos en la ruta del directorio del proyecto. Para poder usar una edición de esta base de datos desde la pestaña de servicios, debe crear una nueva conexión a una base de datos integrada. Debe usar el nombre CustDB, la misma aplicación de usuario y la misma aplicación de contraseña.
Lo más importante aquí es usar la ruta del directorio del proyecto en la URL, de modo que en la ventana al crear la conexión en el campo URL debe usar:
jdbc:derby:directory_path_of_the_project/CustDB;
Ahora si presionas el botón de conexión de prueba, todo debería estar bien.
Si usa aquí create=true
sin usar la ruta del directorio del proyecto, creará otra base de datos con el mismo nombre, mismo usuario y contraseña, pero en una ubicación diferente. Más adelante se encontrará realizando cambios en la base de datos en su código y no los verá en la base de datos en la pestaña de servicios.