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

java.sql.:表/视图'x'不存在

容柏
2023-03-14

我正在尝试在NetBeans 8.0.2 IDE和GlassFish 4.1中运行一个名为AddressBook(JSF with Facelets)的web应用程序,该应用程序通过托管bean中的以下代码访问关系数据库:

@Resource( name="jdbc/addressbook" )
DataSource dataSource;

当我运行应用程序时,我在浏览器中得到以下错误:

java.sql.SQLSyntaxErrorException: Table/View 'ADDRESSES' does not exist
    at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
    at org.apache.derby.client.am.Connection.prepareStatement(Unknown Source)
    at com.sun.gjc.spi.base.ConnectionHolder.prepareStatement(ConnectionHolder.java:586)
    at com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:255)
    at com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:52)
    at com.sun.gjc.spi.ManagedConnectionImpl.prepareCachedStatement(ManagedConnectionImpl.java:992)
    at com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareStatement(ConnectionWrapper40.java:173)
    at addressbook.AddressBean.getAddresses(AddressBean.java:157)

AddressBean。java第157行是:

PreparedStatement getAddresses = connection.prepareStatement(
            "SELECT FIRSTNAME, LASTNAME, STREET, CITY, STATE, ZIP " +
            "FROM ADDRESSES ORDER BY LASTNAME, FIRSTNAME" );

通过以下步骤创建包含ADDRESSES表的addressbook数据库

>

  • 右键单击GlassFish服务器并选择查看域管理控制
  • 属性:;create=true
  • 数据库名称:地址簿
  • 密码:应用程序
  • 单击“完成”

创建数据源名称

  1. 在GlassFish网页中的“常见任务”左侧一栏中,单击JDBC资源
  2. 单击New按钮并指定JDBC/addressbook作为JNDI名称
  3. 选择AddressBookPool作为池名

当我返回到NetBeans服务选项卡时,地址簿已在JavaDB下创建。

我成功连接到数据库: jdbc:derby://localhost:1527/addressbook[APP on APP]并使APP成为默认模式

我在NetBeans:addressbook中打开一个文件。包含用于填充通讯簿的sql的sql。我在上面的连接上运行它,地址表被创建,我能够查看数据。

地址簿属性JavaDB驱动程序作为库。

共有1个答案

祖奇
2023-03-14

确保您的web.xml文件(在配置文件文件夹中)具有资源引用。示例:

    <resource-ref>
        <res-ref-name>jdbc/db1</res-ref-name>
        <res-type>javax.sql.ConnectionPoolDataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>

其中db1是您的jdbc资源名称。还要确保该值具有正确的资源类型,即示例中的连接池数据源。

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

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

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

  • 我刚刚克隆了一个Laravel项目。我试图运行作曲家安装和PHP artisan迁移,但都返回此错误 在Connection.php行664中: SQLSTATE[42S02]:基表或视图未找到: 1146表'name.system_functions'不存在(SQL:选择*from其中=测试限制1) 在Connection.php第326行中: SQLSTATE[42S02]:找不到基表或视图:

  • 我有一个如下定义的表视图 当用户单击时,我使用单击的项目详细信息重新加载表。在我重新加载之前,我对表项调用清除 现在,当我单击另一个项目并尝试重新加载表格时,它看起来像下面这样。这是非常奇怪的,因为应该只有一行,但行的大小是一样的,就像从以前的点击,其余的行是空的,除了图标。当我点击图标时,没有任何反应。任何人以前都面临过这种情况。有人知道这是什么原因吗? 我的工具定义如下。它们只是2 的