赞
踩
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代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。