【发布时间】:2013-12-03 07:09:33
【问题描述】:
我正在尝试编写代码来访问我服务器上的已知数据库以从某个表中收集数据,但我不断收到异常。
到目前为止,这是我的 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)
目前我想做的只是连接到数据库并调用一个查询,但这对我来说并没有发生。有任何信息可以帮助我吗?
【问题讨论】:
-
您的数据库中似乎不存在表
DEVICE,或者您无权访问它。 -
不存在,我可以手动输入,我可以访问它
-
url+dbName中可能缺少 / -
你的数据库名称是什么?
-
如果您直接运行该精确查询是否有效?我的第一个想法是您需要在查询中完全限定 DEVICE。