ich versuche eine einfache Anwendung mit h2 Datenbank zu machen. Programm funktioniert nur einmal perfekt. Wenn ich versuche, mehr Daten einzufügen, ist ein Fehler aufgetreten.Java Embedded Database h2
org.h2.jdbc.JdbcSQLException: Die Datenbank wird möglicherweise bereits verwendet: "C: /Users/ali/bookDB.mv.db". Mögliche Lösungen: Schließen Sie alle anderen Verbindungen; Verwenden Sie den Server-Modus [90020-186]
java.lang.IllegalStateException: Die Datei ist gesperrt, nio: C: /Users/ali/bookDB.mv.db [1.4.186/7]
-Code
istpackage h2_basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class H2_Basic {
public static void main(String[] args) {
try{
Class.forName("org.h2.Driver");
Connection con = DriverManager.getConnection("jdbc:h2:~/bookDB","test","test");
Statement sta = con.createStatement();
String CREATE_TABLE = "CREATE TABLE BOOKS "
+ "(bookid bigint auto_increment NOT NULL PRIMARY KEY, "
+ " booktitle VARCHAR(255), "
+ " bookauthor VARCHAR(255), "
+ " editiondate VARCHAR(255))";
sta.execute(CREATE_TABLE);
String sql = "INSERT INTO BOOKS (booktitle, bookauthor, editiondate) VALUES ('ali','ali','12')";
sta.execute(sql);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
Das klingt, als ob Ihre H2-Datenbankdatei gesperrt ist. –
Ich denke, Verbindungen sind nicht geschlossen. Add schließe schließlich die Verbindung und schließe die Verbindung wie 'finally {con.close(); } ' – Shettyh