简体   繁体   English

Java嵌入式数据库h2

[英]Java Embedded Database h2

i am trying to make a simple application using h2 Database. 我正在尝试使用h2数据库创建一个简单的应用程序。 Program is working perfectly just for one time. 程序正在完美地工作一次。 when i am tying to insert more data, following error occurred. 当我想要插入更多数据时,发生以下错误。

org.h2.jdbc.JdbcSQLException: Database may be already in use: "C:/Users/ali/bookDB.mv.db". org.h2.jdbc.JdbcSQLException:数据库可能已在使用中:“C:/Users/ali/bookDB.mv.db”。 Possible solutions: close all other connection(s); 可能的解决方案:关闭所有其他连接; use the server mode [90020-186] 使用服务器模式[90020-186]

java.lang.IllegalStateException: The file is locked: nio:C:/Users/ali/bookDB.mv.db [1.4.186/7] java.lang.IllegalStateException:文件被锁定:nio:C:/Users/ali/bookDB.mv.db [1.4.186 / 7]

Code is 代码是

package 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();
       }
    }

}

Change your JDBC URL to jdbc:h2:~/bookDB;AUTO_SERVER=TRUE , as in 将JDBC URL更改为jdbc:h2:~/bookDB;AUTO_SERVER=TRUE ,如

DriverManager.getConnection("jdbc:h2:~/bookDB;AUTO_SERVER=TRUE","test","test");

to start H2 in Automatic Mixed Mode . 自动混合模式下启动H2。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM