Java - 向数据库写入查询

标签 java sql hsqldb

我正在尝试编写代码来访问服务器上的已知数据库,以从某个表收集数据,但我不断收到异常。

这是到目前为止我的 Java 代码;

public static void main (String [] args) throws FileNotFoundException
{ 
    String url = "jdbc:hsqldb:C:/workspace/database/eemdb";
    String dbName = "eem_db";
    String driver = "org.hsqldb.jdbcDriver";
    String username = "sa";
    String password = "";
    try
    {
        Class.forName(driver).newInstance();
        Connection con = DriverManager.getConnection(url+dbName, username, password);
        Statement st = con.createStatement();
        ResultSet res = st.executeQuery("SELECT * FROM DEVICE");

        con.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

这是异常报告;

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: DEVICE
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
    at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source)
    at com.davranetworks.seleniumtests.Example.main(Example.java:32)
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: DEVICE
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.SchemaManager.getTable(Unknown Source)
    at org.hsqldb.ParserDQL.readTableName(Unknown Source)
    at org.hsqldb.ParserDQL.readTableOrSubquery(Unknown Source)
    at org.hsqldb.ParserDQL.XreadTableReference(Unknown Source)
    at org.hsqldb.ParserDQL.XreadFromClause(Unknown Source)
    at org.hsqldb.ParserDQL.XreadTableExpression(Unknown Source)
    at org.hsqldb.ParserDQL.XreadQuerySpecification(Unknown Source)
    at org.hsqldb.ParserDQL.XreadSimpleTable(Unknown Source)

目前我想做的就是连接到数据库并调用查询,但这对我来说并没有发生。有谁有任何信息可以帮助我吗?

最佳答案

我认为该错误消息可能具有误导性。尝试更新版本的 hsqldb(或切换到 the H2 database 以查看错误消息应该是什么样的)。

就您而言,我的猜测是表DEVICE不存在。您是否在此数据库中创建了任何表?

另请注意,如果您在 URL 中输入错误,hsqldb 将创建一个空数据库。

“用户缺乏权限”的可能性很小,因为 sa 是数据库管理员。

检查哪些表存在:How to see all the tables in an HSQLDB database?

关于Java - 向数据库写入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076503/

相关文章:

java - Println 中 boolean + 字符串中 () 的重要性

mysql - 使用 Ansible 创建 MySQL 表

sql - 使用 DISTINCT 时按 "original order"排序

java - hsqldb hibernate 持久化@Lob

java - HQL 查询在运行 SQL 查询时抛出 QueryException

oracle - JUnit/HSQLDB : How to get around errors with Oracle syntax when testing using HSQLDB (no privilege and/or no DUAL object)

Java物理引擎?

Java:运算符(operator)通知

java - 有效地查找数组中的最大元素

php - 页面不会重定向,因为没有插入数据