![](/img/trans.png)
[英]Derby/Intellij java.sql.SQLSyntaxErrorException: Table/View 'ALCOHOL' does not exist
[英]Java Derby Apache Table/View does not exist
感谢您抽出时间阅读。 我知道有人问过其他类似的问题。 我遇到的问题是我已经检查了相关问题中的所有问题,但仍然没有解决方案。 我只是想选择一个列来查看它是否正常工作,但如果我尝试选择所有列都没有关系。
这是我的代码....
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class DBConnection {
private static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
private static String JDBC_URL;
Connection con;
public DBConnection() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
Class.forName(DRIVER).newInstance();
con = DriverManager.getConnection(connectionUrl());
if(con != null)
System.out.println("Connection Established");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from MOVIES");
while(rs.next()) { String movieName = rs.getString(1);
System.out.println(movieName); }
rs.close();
con.close();
}
private static final String connectionUrl() {
JDBC_URL = "jdbc:derby:MoviePlayer_JavaFlix;create=true;USER = JavaFlix; password = 123";
return JDBC_URL;
}
}
我已经检查了我的数据库属性中的 url 路径,它是相同的。 建立到数据库的连接。 我什至在 SQL Scrapbook 中运行了查询,并且没有遇到任何问题。 我的用户名和密码是相同的。
这是控制台输出...
Connection Established
Exception in thread "main" java.sql.SQLSyntaxErrorException: Table/View 'MOVIES' does not exist.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
at data.source.db.DBConnection.<init>(DBConnection.java:23)
at data.source.db.Main.main(Main.java:8)
Caused by: ERROR 42X05: Table/View 'MOVIES' does not exist.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
... 4 more
这是我的数据库位置...
这是我的文件夹路径... C:\\Users\\Banan\\eclipse-workspace\\MoviePlayer_JavaFlix
我想我可能发现了一些可能导致问题的问题......
当我运行st.executeUpdate("CREATE TABLE movies (ID INT PRIMARY KEY, movie_name VARCHAR(50))")
创建了一个表...
但是,我无法选择、插入或对此进行任何操作。
您以JavaFlix
用户身份连接,因此这也是您选择的默认架构。 您尝试访问的表位于 APP 架构中。 您需要使用架构为您的表名加上前缀,例如
SELECT * FROM APP.MOVIES
或者,创建一个同义词,例如
CREATE SYNONYM MOVIES FOR APP.MOVIES
之后,您应该能够从您的架构中执行SELECT * FROM MOVIES
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.