当前位置:   article > 正文

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

idea jsp jdbc

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

然后插入数据

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' );
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

6.查询结果 。 成功!

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

Class.forName("com.mysql.jdbc.Driver");//8.0以前驱动加载
  • 1
Class.forName("com.mysql.cj.jdbc.Driver");//8.0以后驱动加载
  • 1
String url = "jdbc:mysql://localhost:3306/world";
//8.0以前url代码
  • 1
  • 2
String url = "jdbc:mysql://localhost:3306/world?useSSL=false&serverTimezone=UTC";
//8.0以后url代码
  • 1
  • 2
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号