Java—将查询写入数据库
我试图编写代码来访问服务器上的已知数据库,以从某个表中收集数据,但我不断遇到异常 这是我目前为止的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
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";
您的数据库中似乎不存在表设备
,或者您不允许访问它。不存在,我可以手动输入它,并且我可以访问它。可能缺少/inurl+dbName
您的数据库名是什么?如果直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/inurl+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/inurl+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。您的数据库中似乎不存在表DEVICE
,或者不允许您访问它。不存在,我可以手动输入,而且我确实有权访问它。我可能缺少/inurl+dbName
你的数据库名是什么?如果你直接运行它,精确的查询是否有效?我的第一个想法是,您需要在查询中完全限定设备。H2推荐值+1。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表runSELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的空数据库。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表runSELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的空数据库。它是HSQLDB的替代品,但要好得多。这是我的同事使用的公司数据库,所以我不能对它做任何更改。表设备
确实存在,我用其他表尝试了该代码,但结果相同。我个人没有创建表runSELECT*FROM INFORMATION\u SCHEMA.TABLES
来查看数据库中的表。我的猜测是您输入了一个错误,hsqldb创建了一个新的、空的