IDEA中JSP项目通过jdbc连接MySql数据库。Mysql版本连接不上问题解决办法。MySql8.0前后版本连接区别

1.先创建一个JSP项目。不会创建的可以参考csdn文章https://blog.csdn.net/qq_41765030/article/details/106086177
2.下载Mysql 的jdbc驱动,官网下载地址:https://dev.mysql.com/downloads/connector/j/
注:jdbc版本必须支持Mysql版本,一般高版本jdbc驱动会支持略低数据库版本,如:jdbc 8.0.20支持MySql8.0.19版本。此处不做过多讲解,版本匹配可自行查询。
不支持的版本会造成无法连接的错误
此处演示最新版本下载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处下载的为zip,下载后解压,里面有一个后缀为.jar的数据包。接下来要使用此jar包

3.回到我们的jsp项目中,打开目录WEB-INF中lib目录,将下载好的驱动**jar包 !jar包!jar包!**放入lib目录中
注:如果WEB-INF中没有lib目录则手动创建一个名为lib的文件夹
在这里插入图片描述
4.在MySql中新建数据库。
新建一个表
可以通过代码创建

在这里插入代码片

CREATE TABLE `websites` (
	`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
	`name` CHAR ( 20 ) NOT NULL DEFAULT '' COMMENT '站点名称',
	`url` VARCHAR ( 255 ) NOT NULL DEFAULT '',
	`alexa` INT ( 11 ) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
	`country` CHAR ( 10 ) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY ( `id` ) 
) ENGINE = INNODB AUTO_INCREMENT = 10 DEFAULT CHARSET = utf8;

然后插入数据

INSERT INTO `websites`
VALUES
	( '1', '百度', 'https://www.baidu.cm/', '1', 'CN' ),
	( '2', 'CSDN', 'https://www.csdn.net', '1', 'CN' ),
	( '3', '腾讯', 'http://www.qq.com', '1', 'CN' ),
	( '4', '微博', 'http://weibo.com/', '1', 'CN' ),
	( '5', '淘宝', 'https://www.taobao.com/', '1', 'CN' );

5.编辑index.jsp代码如下 版本关系在注释中讲解

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"
         import="java.sql.*"
%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title></head>
<body><%
    //star
    Class.forName("com.mysql.cj.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/world?useSSL=false&serverTimezone=UTC";
    //    8.0以后版本加载驱动
    //    3306为端口号根据自己数据库端口设置--
    //    ...3306/"数据库名称"?useSSL......
    //    com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。
    //    MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。
    //end
    //

    //star
    //    Class.forName("com.mysql.jdbc.Driver");
    //    String url = "jdbc:mysql://localhost:3306/world";
    //    8.0以前版本加载驱动方式
    //end

    String un = "root";         //MySql用户名
    String pa = "123456";       //MySql密码
    Connection con = DriverManager.getConnection(url, un, pa);
    Statement st = con.createStatement();
    String sql = "select * from websites";
    ResultSet rs = st.executeQuery(sql);
%>
<table border="1" cellpadding="0" cellspacing="0">
    <caption>用户列表</caption>
    <tr>
        <td>id</td>
        <td>用户名</td>
        <td>密码</td>
    </tr>
    <%while (rs.next()) { %>
    <tr>
        <td><%=rs.getInt("id") %>
        </td>
        <td><%=rs.getString("name") %>
        </td>
        <td><%=rs.getString("url") %>
        </td>
    </tr>
    <%} %></table>
</body>
</html>

6.查询结果 。 成功!

在这里插入图片描述
总结:jsp连接MySQL时除了代码逻辑和拼写错误以外,jdbc也可能出现版本不匹配问题,一定要使用兼容的jdbc驱动,不同的版本中连接代码有些差异。
附:8.0以前的版本和8.0以后版本驱动加载代码区别

Class.forName("com.mysql.jdbc.Driver");//8.0以前驱动加载
Class.forName("com.mysql.cj.jdbc.Driver");//8.0以后驱动加载
String url = "jdbc:mysql://localhost:3306/world";
//8.0以前url代码
String url = "jdbc:mysql://localhost:3306/world?useSSL=false&serverTimezone=UTC";
//8.0以后url代码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值