【问题标题】:JDBC Connection from MySQL to JSP Site从 MySQL 到 JSP 站点的 JDBC 连接
【发布时间】:2015-05-17 17:34:35
【问题描述】:

我正在尝试将 MySQL 连接到 JSP 网站。以下是到目前为止所遵循的步骤:

  1. 已安装 MySql 当我打开MySQL command line client 时,系统会提示我输入密码,与我在安装过程中输入的密码相同。 我能够创建数据库和表,将行插入表等。我有一个管理员和一个用户。 SELECT CURRENT_USER(); 返回:root@localhost
  2. 我需要一个 MySQL 连接器,所以我去了这里: http://www.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.0.9-stable.zip 并下载了这个 zip 文件: mysql-connector-java-3.0.9-stable.zip

  3. 我解压缩了存档,取出名为mysql-connector-java-3.0.9-stable-bin.jar 的 jar 文件并将其放在 Tomcat 网站文件夹中:

    C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\DataAccess\WEB-INF\lib

(这个 .jar 应该被复制到每个需要访问数据库的 Web 应用程序的 WEB-INF\lib\ 文件夹中;我那里也有 JSTL jar 文件可以很好地工作)

  1. 我创建了这个名为 booklist.jsp 的脚本:

"C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\DataAccess\booklist.jsp"

   <%@ page import="java.io.*,java.util.*,java.sql.*"%>
    <%@ page import="javax.servlet.http.*,javax.servlet.*"%>

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>

    <sql:setDataSource var="datasource"    driver="com.mysql.jdbc.Driver"
                        url="jdbc:mysql://localhost/rentbooks"
                       user="root" password="1234"/>
    <sql:query dataSource="${datasource}" var="result" > SELECT id, title, authors FROM book   </sql:query>
    <html>
      <head>
        <title>A First JSP Database</title
      </head>
      <body>
        <table border="1">
          <tr>
             <td>id</td><td>title</td><td>authors</td>
          </tr>
    <c:forEach items="${result.rows}" var="row">
          <tr>
            <td><c:out value="${row.id}" /></td>
            <td><c:out value="${row.title}" /></td>
            <td><c:out value="${row.authors}" /></td>
          </tr>
    </c:forEach>
       </table>
      </body>
    </html>

不知道为什么在这个阶段我得到一个错误:

type Exception report exception 
org.apache.jasper.JasperException: Exception in JSP: /booklist.jsp:10
9:  user="root" password="1234"/>
10: <sql:query sql="SELECT id, title, authors FROM book" var="result"
11:     dataSource="${datasource}"/>

为了更准确地了解错误消息:“由于异常,无法连接到任何主机:java.lang.ArrayIndexOutOfBoundsException:44” 请问有什么帮助吗?数据库、表和字段名称正确。我如何知道它是否与 JDBC 连接器有关,或者它是否无法连接到数据库?或者如果它连接但无法读取数据? 在 MySql 安装过程中,我创建了一个用户名,叫做 sammy,但是当我进入 MySQL 命令行时,它返回的当前用户是“root@localhost”。 先感谢您。我尽量详细说明步骤。

【问题讨论】:

    标签: java mysql jsp tomcat


    【解决方案1】:

    在我用更新的版本 5.0.8 替换 mysql-connector-java-*-bin.jar 之后它终于工作了(我在这里找到了: http://dev.mysql.com/downloads/connector/j/5.0.html;我下载了这个 zip 文件:mysql-connector-java-5.0.8.zip,解压缩存档,获取名为 mysql-connector-java-5.0.8-bin.jar 的 jar 文件并将其放在 Tomcat 网站文件夹中)。

    我重新启动了 Tomcat 和 MySql,现在它可以工作了。顺便说一句,我输入的用户名是root,尽管在安装过程中我选择了一个不同的用户名。不知道为什么。

    我将把这个问题留在这里,以防它对其他人也有帮助,特别是因为我详细说明了我的所有步骤。

    【讨论】:

    • 为什么要编辑关于具体问题的问题?现在它不包含任何可回答的问题。
    • BalusC,我在重新启动 Tomcat 之前添加了连接器详细信息,以解决我的问题。我同意你的观点,并且刚刚根据你的建议编辑了这个问题,以揭示正确和合乎逻辑的思维过程。谢谢。
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2012-03-20
    • 2011-02-17
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多