Java—将查询写入数据库

Java—将查询写入数据库,java,sql,hsqldb,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

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

这是我目前为止的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(或切换到以查看错误消息应该是什么样子)

在您的情况下,我猜测表
设备
不存在。您在此数据库中创建了任何表吗

还要注意的是,如果您在URL中输入错误,hsqldb将创建一个空数据库

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


要检查哪些表存在:

我认为错误消息可能会误导。请尝试更新版本的hsqldb(或切换到以查看错误消息应该是什么样子)

在您的情况下,我猜测表
设备
不存在。您在此数据库中创建了任何表吗

还要注意的是,如果您在URL中输入错误,hsqldb将创建一个空数据库

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


要检查哪些表存在:

我认为错误消息可能会误导。请尝试更新版本的hsqldb(或切换到以查看错误消息应该是什么样子)

在您的情况下,我猜测表
设备
不存在。您在此数据库中创建了任何表吗

还要注意的是,如果您在URL中输入错误,hsqldb将创建一个空数据库

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


要检查哪些表存在:

我认为错误消息可能会误导。请尝试更新版本的hsqldb(或切换到以查看错误消息应该是什么样子)

在您的情况下,我猜测表
设备
不存在。您在此数据库中创建了任何表吗

还要注意的是,如果您在URL中输入错误,hsqldb将创建一个空数据库

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


要检查存在哪些表:

在执行代码之前,您是否在DB中创建了任何表?如果您的设备有可能丢失了一个/,请像这样尝试

 String url = "jdbc:hsqldb:C://workspace/database/eemdb";

在执行代码之前,您是否在DB中创建了任何表?如果您的设备有可能丢失了一个/,请像这样尝试

 String url = "jdbc:hsqldb:C://workspace/database/eemdb";

在执行代码之前,您是否在DB中创建了任何表?如果您的设备有可能丢失了一个/,请像这样尝试

 String url = "jdbc:hsqldb:C://workspace/database/eemdb";

在执行代码之前,您是否在DB中创建了任何表?如果您的设备有可能丢失了一个/,请像这样尝试

 String url = "jdbc:hsqldb:C://workspace/database/eemdb";


您的数据库中似乎不存在表
设备
,或者您不允许访问它。不存在,我可以手动输入它,并且我可以访问它。可能缺少/in
url+dbName
您的数据库名是什么?如果直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表
DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/in
url+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表
DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/in
url+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表
DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/in
url+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。H2推荐值+1。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表
设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表run
SELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的空数据库。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表
设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表run
SELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的空数据库。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表
设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表run
SELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的、空的