从MySQL到JSP站点的JDBC连接

时间:2015-05-17 17:34:36

标签: java mysql jsp tomcat

我正在尝试将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 \ web应用\数据访问\ WEB-INF \ lib中

  4. (这个.jar应该被复制到需要访问数据库的每个Web应用程序的WEB-INF \ lib \文件夹中;我还有那些运行良好的JSTL jar文件)

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

      " C:\ Program Files \ Apache Software Foundation \ Tomcat   5.5 \ web应用\数据访问\ 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}"/>
      

      更准确地说明错误消息:&#34;由于异常而无法连接到任何主机:java.lang.ArrayIndexOutOfBoundsException:44&#34; 有什么帮助吗?数据库,表和字段名称是正确的。我如何知道它是否与JDBC连接器相关或者它是否无法连接到数据库?或者,如果它连接但无法读取数据? 在MySql安装期间,我创建了一个名为sammy的用户名,但是当我输入MySQL命令行时,它返回的当前用户是&#34; root @ localhost&#34;。 先感谢您。我试图尽可能详细地说明这些步骤。

1 个答案:

答案 0 :(得分: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,但在安装过程中我选择了一个不同的用户名。不知道为什么。

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