Solución:
¡Su programa contiene algunos malentendidos y asignaciones incorrectas!
-
Desde su imagen puede ver su DATABASE = contactDB no contact.
“jdbc: derby: C: /Users/yohan/.netbeans-derby/contact” es incorrecto“jdbc: derby: C: /Users/yohan/.netbeans-derby/contactDB” ahora solo el DB es correcto.
Error: Es posible que otra instancia de Derby ya haya iniciado la base de datos C: Users yohan.netbeans-derby contact. -
Para el Con.String es mejor no usar el PATH
trabajará “jdbc: derby: // localhost: 1527 / C: /Users/yohan/.netbeans-derby/contactDB”, “yohan”, “xyz”
mejor es “jdbc: derby: // localhost: 1527 / contactDB”, “yohan”, “xyz”
Es mejor especificar la ruta completa a la tabla. De lo contrario, solo funciona en Netbeans, con una tabla ya abierta y un esquema predeterminado.
- prepareStatement
solamente dentro de Netbeans con.prepareStatement (“insertar en AMIGOS valores(?,?,?)”);
mejor es con.prepareStatement (“insertar en APP.FRIENDS valores(?,?,?)”);
¡Ahora mira esto!
ps.setInt(1, id);
ps.setString(1, firstName);
ps.setString(2, lastName);
- Primero configura el identificación con setInt ().
- Segundo Ahora configura el identificación con un cuerda setString () (nombre !!!!!)
- En tercer lugar, al final, anula firstName con lastName y lastName en ps. esta vacio.
Esto le dará el siguiente error.
Es mejor, cuando un se produce un error, para no ejecutar más el programa. La lista de errores crecerá. Es dificil de leer. en su caso, el primer error está en createConnection y sigue corriendo !!
- Error createConnection
- Error con.prepareStatement (“…
- Error ps.executeUpdate ()
- Error closeConnection ()
Pruébalo con booleano y si !
private boolean createConnection()
{
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/contactDB","yohan","xyz");
}
catch(Exception e)
{
System.out.println("Error getConnection");
return false;
}
return true;
}
No es necesario ejecutar más si falla la conexión.
public void insertData(int id, String firstName, String lastName)
{
if (createConnection()) {
try
{
PreparedStatement ps = con.prepareStatement("INSERT INTO APP.FRIENDS values(?,?,?)");
ps.setInt(1, id);
ps.setString(2, firstName);
ps.setString(3, lastName);
[...]
Espero que esto te ayude un poco.
su datasae ya está conectada desconecte haga clic derecho -> desconecte ahora inténtelo,
seguro que funcionará.