【发布时间】:2015-05-17 17:34:35
【问题描述】:
我正在尝试将 MySQL 连接到 JSP 网站。以下是到目前为止所遵循的步骤:
- 已安装 MySql
当我打开
MySQL command line client时,系统会提示我输入密码,与我在安装过程中输入的密码相同。 我能够创建数据库和表,将行插入表等。我有一个管理员和一个用户。SELECT CURRENT_USER();返回:root@localhost 我需要一个 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-
我解压缩了存档,取出名为
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 文件可以很好地工作)
- 我创建了这个名为 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”。 先感谢您。我尽量详细说明步骤。
【问题讨论】: