我正在创建一个需要使用集成数据库的应用程序,但是我在使应用程序连接到数据库/表时遇到问题。不幸的是,我对Java连接到数据库的知识相当有限,但我阅读和观看的所有内容似乎都指向我的代码是正确的。
public static void main(String[] args) {
try{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection con = DriverManager.getConnection("jdbc:derby:datahold;");
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery("select * from APP.DATASTORE");
ResultSetMetaData meta=rs.getMetaData();
int columnCount = meta.getColumnCount();
for (int x = 1; x <= columnCount; x++)
System.out.format("%20s",meta.getColumnName(x)+ " | ");
while (rs.next()){
System.out.println("");
for (int x = 1; x <= columnCount; x++) System.out.format("%20s", rs.getString(x)+ " | ");
}
if (stat != null) stat.close();
if (con != null) con.close();
} catch(Exception e) {
System.out.print(e);
}
}
java.sql.SQLSyntaxErrorException:Table / View&#39; APP.DATASTORE&#39;不存在.BUILD 成功(总时间:1秒)
我尝试删除&#34; APP。&#34;但这导致应用程序无法找到表格&#34; ROOT.DATASTORE&#34;。
如果有人能够帮助我,那就太棒了!
我现在可以看到,在运行应用程序时,它正在包的根目录中创建数据库文件。因此,嵌入式驱动程序连接必须正常工作(至少就像我看到的那样)。我的问题是数据库应该放在这里还是应该放在&#34; dist&#34;文件夹?
我假设它无法看到桌子,因为它正在寻找错误的位置。
答案 0 :(得分:0)
你在那里放了一个分号
DriverManager.getConnection("jdbc:derby:datahold;");
将其删除
DriverManager.getConnection("jdbc:derby:datahold");
答案 1 :(得分:0)
所以这个问题的答案很简单,因为我在经过一段时间的修补后发现了这个问题。
Netbeans会创建一个持久的xml文件,该文件存储应用程序启动时使用的一些数据。更准确地说,当数据库启动时。其中一个选项是使用哪个连接。
我所要做的就是将此连接更改为我的嵌入式驱动程序连接,它现在正在运行。