【问题标题】:HSQL embedded connectionHSQL 嵌入式连接
【发布时间】:2020-06-12 16:44:52
【问题描述】:

我正在尝试通过 java 脚本连接到我的 hsqlDb,但是我在数据库中添加的任何内容都无法保存,也不会产生任何错误!当我尝试从数据库中获取数据并使用 Result.next() 时也是如此,即使我的表中有数据,它也会生成 nulPointerExeption

 Connection con = null; 
    try {
        Class.forName("org.hsqldb.jdbcDriver");
         con = DriverManager.getConnection("jdbc:hsqldb:file:GestionPiecesDB\\GestionPiece;hsqldb.lock_file=false", "root", "");

    } catch (SQLException e) {
        System.out.println(e);
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(DataBaseTest.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.print("connected \n");
    Statement stmn;
    try {
        stmn = con.createStatement();
        stmn.executeUpdate("insert into users (nom ,nature , mot_passe ) values ('admin' ,'admin' , 'admin')");
    } catch (SQLException ex) {
    }
    System.out.print("created \n");

    Statement sn;
    ResultSet r ;
    try {
        sn = con.createStatement();
        r = sn.executeQuery("select * from users");
        if(r.next())
             System.out.print("value \n");
        else
            System.out.print("not value \n");               
    } catch (SQLException ex) {
    }

【问题讨论】:

  • 你是否将 hsqldb jar 添加到项目中?
  • 是的,我做到了,当我执行 getconnection 时,它可以工作,但之后每件事都已执行,但数据库中没有任何变化

标签: java hsqldb


【解决方案1】:

您正在捕获异常并继续该程序。这意味着您不会看到任何错误。将throws SQLException 添加到方法签名中,并删除此异常的所有try {} catch 块。

您的文件路径应该是绝对的。例如:

DriverManager.getConnection("jdbc:hsqldb:file:C:\\GestionPiecesDB\\GestionPiece", "root", "")

并且您不应该禁用锁定文件以正常使用。

【讨论】:

  • 即使这样它也不起作用!难道是因为我正在使用 hsql manager 来创建数据库!!?因为当我连接服务器时,一切正常
  • 它应该与绝对文件路径一起使用。但是jdbc:hsqldb:file: 一次只能从一个程序建立连接。服务器模式更好,因为您可以从多个程序进行连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
相关资源
最近更新 更多