Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中連接MySQL數據庫時Connection conn = DriverManager.getConnection(url,username,password)報錯的解決辦法


開發環境:

  1、系統:windows 7/8/10均可
  2、jdk:1.8.0_144

  3、服務器:apache-tomcat-9.0.8

  4、IDE:eclipse+jsp

0、網頁代碼如下:

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page language="java" import="java.util.*"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>小腳本測試</title>
    <meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<%
// 注冊數據庫驅動
Class.forName("com.mysql.jdbc.Driver"); // 獲取數據庫連接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookshop","root","123456"); // 創建Statement
Statement stmt = conn.createStatement();
// 執行查詢
ResultSet rs = stmt.executeQuery("select * from news_inf");
%>
<table bgcolor="#ff0000" border="5" width="500">
<%
// 遍歷結果集
while(rs.next())
{%>
    <tr>
        <!-- 輸出結果集 -->
        <td><%=rs.getString(1)%></td>
        <td><%=rs.getString(2)%></td>
    </tr>
<%}%>
</table>
</body>
</html>

在jsp頁面中把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中,再連接MySQL數據庫時Connection conn = DriverManager.getConnection(url,username,password)報如下的錯誤:

Type Exception Report
Message An exception occurred processing [connDb.jsp] at line [15]
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: An exception occurred processing [connDb.jsp] at line [15]

// 注冊數據庫驅動
Class.forName("com.mysql.jdbc.Driver");
// 獲取數據庫連接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookshop","root","123456");//這句代碼報錯
// 創建Statement
Statement stmt = conn.createStatement();

Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

1解決辦法:

1.1、將下載好的包添加進項目,操作如下:

這里我用的是eclipse,其他編譯器導入方法自行搜索查詢。
在這里插入圖片描述

然后點擊:Add External JARS

在這里插入圖片描述

添加完之后如下圖:

在這里插入圖片描述

然后項目文件夾下就會多出:

在這里插入圖片描述

1.2、具體代碼修改如下:

// 注冊數據庫驅動
Class.forName("com.mysql.cj.jdbc.Driver"); // 獲取數據庫連接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookshop","root","123456");

上述代碼修改原因如下:

首先這種寫法會報錯 :

意思就是:com.mysql.jdbc.Driver 這種寫法已經棄用了,最新的寫法是:com.mysql.cj.jdbc.Driver

然后這個報錯就解決了。再運行,又會報錯:

這個mysql官網也提到了,是因為 mysql 返回的時區有問題,所以這里需要顯示指定時區:在url上加參數serverTimezone=GMT(如果想返回北京時間,則:serverTimezone=GMT%2B8)。

1.3運行結果如下:

 

 

 

參考鏈接:

Java使用mysql-connector-java-8.0.13連接數據庫的一些問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM