java - 使用 sql :query with CUSTOMER table in Derby's sample database in Netbeans default installation

标签 java netbeans jdbc glassfish derby

我在 Windows 上使用 Netbeans 8.0.2。我写了一个示例 JSP 页面

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h2>Hello, World!</h2>
        <sql:query var="allRows" dataSource="jdbc/sample">
            SELECT name, city, state FROM APP.customer
        </sql:query>
        <table border="1">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Location</th>
                </tr>
            </thead>
            <tbody>
                <c:forEach var="currentRow" items="${allRows.rows}">
                    <tr>
                        <td>"${currentRow.name}"</td>
                        <td>"${currentRow.city}", "${currentRow.state}"</td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
    </body>
</html>

但是如果我执行这个页面,我会得到

javax.servlet.ServletException: 
            SELECT name, city, state FROM APP.customer
        : Table/view 'APP.CUSTOMER' is not exist.

示例数据库是一个演示 Derby 数据库。我使用 GlassFish Server 4.1、JDK 7、Java EE 7。所有这些都在 Netbeans 的默认安装中。我使用 GlassFish Server 的默认设置。

我在“服务”选项卡上看到示例数据库连接。它是 jdbc:derby://localhost:1527/sample。我在 GlassFish 的 SamplePool 连接池属性中看到了这个 url。此连接池用于 jdbc/sample JDBC 资源。 APP.CUSTOMER 表存在于示例数据库中。

我做错了什么?

最佳答案

我不确定哪里出了问题,但请尝试以下操作:

  • derbyclient.jarglassfish4/javadb/lib 复制到 glassfish4/glassfish/lib/endorsed
  • 重启 Glassfish
  • 将您的代码更改为以下内容:

    <sql:setDataSource var="snapshot" driver="org.apache.derby.jdbc.ClientDataSource"
                       url="jdbc:derby://localhost:1527/sample"
                       user="app"  password="app"/>
    <sql:query var="allRows" dataSource="${snapshot}">
        SELECT name, city, state FROM APP.customer
    </sql:query>
    

要玩一个基本的例子,这应该足够了,但你可能不想在生产中使用它。

关于java - 使用 sql :query with CUSTOMER table in Derby's sample database in Netbeans default installation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568478/

相关文章:

apache - 如何防止 Netbeans 因端口已被使用而无法启动 Tomcat?

java - 使用 Maven 的 Web 应用程序不会在 Glassfish 中自动创建连接池和 JNDI

java - JDBC + DBUnit 未找到测试

java - 我如何使用 jvm type -server 测试我的程序

java - 更新到 IntelliJ 2017.1 导致打印 JAVA_TOOL_OPTIONS

java - 从数组中删除元素?

java - 在 netbeans 中运行项目根本不执行任何操作

java - 出现错误 com.jnetdirect.jsql.JSQLException : Invalid parameter index:2 Valid range is 1 to 1 While inserting in to database?

java - 在 Java PostgreSQL 中使用游标读取有什么缺点吗?

java - 想要来自 hibernate json 响应的嵌套 json 格式