当前位置: 首页 > 知识库问答 >
问题:

Derby/IntellijJava。sql。SQLSyntaxErrorException:表/视图“酒精”不存在

薛扬
2023-03-14

尝试通过IntelliJ建立一个简单的嵌入式Derby数据库。当试图从jdbc访问这些表时,我收到错误消息,说这些表不存在。当我为数据库输入终端时,我得到的数据与jdbc不同。

方法

Scanner input = new Scanner(System.in);
        int wob = 0;
        ResultSet rset;
        Statement stmt;

        String qry = "SELECT * FROM ALCOHOL WHERE ALCOHOL.ALCOHOL_TYPE = ";

        do{
            System.out.println("");
            System.out.println("1: For Malt Beverages");
            System.out.println("2: For Wine");
            System.out.println("");
            wob = input.nextInt();
        }while(wob != 1 && wob != 2);

        stmt = conn.createStatement();
        rset = stmt.executeQuery(qry + wob);

        System.out.println(" ID|                     Name|               BrandName |APPELLATION |      Type");
        System.out.println("---|-------------------------|-------------------------|------------|----------");

        while(rset.next()){
            String ID = String.format("%1$"+3+ "s", rset.getString("AID"));
            String name = String.format("%1$"+25+ "s", rset.getString("NAME"));
            String brandname = String.format("%1$"+25+ "s", rset.getString("BRAND_NAME"));
            String app = String.format("%1$"+22+ "s", rset.getString("APPELLATION"));
            String type = String.format("%1$"+10+ "s", rset.getString("ALCOHOL_TYPE"));
            System.out.println(ID + "|" + name + "|" + brandname + "|" + app + "|" + type);
        }
        System.out.println("---|-------------------------|-------------------------|------------|----------");

        rset.close();
        stmt.close();
        input.close();

跟踪:

java.sql.SQLSyntaxErrorException: Table/View 'ALCOHOL' 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 Main.search(Main.java:89)
    at Main.main(Main.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: ERROR 42X05: Table/View 'ALCOHOL' 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)
    ... 9 more

共有1个答案

狄兴邦
2023-03-14

首先,表名区分大小写,请快速检查。其次,如果您为查询使用正确的表名,您需要更改它以添加模式详细信息。

这就是一个这样的例子,如何使用简单的SELECT查询。

SELECT * FROM {schema}."{tablename}"

如果您想将上述查询转换为JAVA,您可能必须使用它,它应该可以工作。

String query = "SELECT * FROM {schema}.\"ALCOHOL\"";

希望这能有所帮助!

 类似资料:
  • > 我安装了一个Derby DB,并打开了一个名为“MyDbTest”的连接 我使用SQL命令为“MyDbTest”连接创建了一个名为BOOK的表: 创建表BOOK(ID INT、DESCRIPTION VARCHAR(20)、UNITCOST VARCHAR(20)、ISBN VARCHAR(20)、nbofpage INT); 我通过使用命令运行Derby服务器:"starNetworkSer

  • 我正在尝试在NetBeans 8.0.2 IDE和GlassFish 4.1中运行一个名为(JSF with Facelets)的web应用程序,该应用程序通过托管bean中的以下代码访问关系数据库: 当我运行应用程序时,我在浏览器中得到以下错误: AddressBean。java第157行是: 通过以下步骤创建包含ADDRESSES表的addressbook数据库: > 右键单击GlassFis

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我正在尝试将Oracle数据库连接到我的JAVA Web项目。当使用系统用户连接创建到数据库的连接时,将成功建立连接。 但是当我在连接中执行一个简单的select *命令时,它说 错误代码942,SQL状态42000:ORA-0

  • 条形图用于绘制基于区域的图表。 在本节中,我们将讨论不同类型的条形图表。 Sr.No. 图表类型和描述 1 基本酒吧 基本条形图。 2 堆积吧 条形图有条形堆叠在一起。 3 负堆积区域 条形图与负堆栈。

  • 问题内容: 我有一张表给朋友们 如何为给定玩家创建一个包含那些熟人(彼此了解)的视图? 谢谢你。 问题答案: 这是所需的选择: