• Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContentWEB-INFlib中连接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放到WebContentWEB-INFlib中,再连接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连接数据库的一些问题

  • 相关阅读:
    9.jQuery工具方法
    8.jQuery遍历索引的方法
    7.jQuery中位置坐标图形相关方法
    CentOS安装log.io
    centos7搭建frps内网穿透服务
    docker showdoc安装
    【测试基础】等价类、边界值的概念及划分
    3-14 Pandas绘图
    3-13 索引进阶
    3-12 字符串操作
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/10463157.html
Copyright © 2020-2023  润新知