学习目的:
通过JSP网页连接到MySQL数据库在MySQL数据库中建立一张数据表将建立的表显示在JSP网页中准备工作:
下载安装MySQL下载安装MySQL可视化工具Navicat Premium
下载安装Tomcat
下载JDBC驱动mysql-connector-java-8.0.11
01. 用Navicat Premium建立数据表
打开Navicat Premium–>【连接】–>【MySQL】–>【连接名:新建数据库的名字,此处为“本地”】;【主机:你本机的ip地址或者直接输入’localhost’】;【端口:一般为默认的3306】;【用户名:默认为‘root’】;【密码:进入mysql命令时设置的密码】–>【确定】。之后点击建立的连接就可查看数据库内容。
【Navicat Premium 具体建表过程参见:
/yangdan1025/article/details/80578675 】
建立一张简单的成绩表:
02. Tomcat的设置
① 将JDBC驱动【mysql-connector-java-8.0.11-bin.jar】文件拷贝到Tomcat安装目录下的【lib】文件夹中。用于JDBC连接数据库。
注意:拷贝后须重启Tomcat,否则无效,会导致无法找到文件。
② 启动Tomcat
双击bin目录下的【startup.bat】,或者在bin目录下打开命令窗口,输入【startup.bat】,回车。右键点击任务栏Tomcat图标,【Start service】灰色字体,否则点击【Start service】启动。
③ 测试
启动后打开任意浏览器,在浏览器的地址栏中输入【http://localhost:8080/】 或是【http://127.0.0.1:8080】,如果出现以下界面,说明安装配置成功。
BUG:当输入【http://localhost:8080/】 或是【http://127.0.0.1:8080】时均无法打开网页,显示如下界面
Reason:有可能是默认的8080端口被占用了
Resolve:进入Tomcat 9.0的安装目录下,打开目录下的【conf】文件中的【serve.xml】(右键编辑),将端口号8080改为【80】。
或者直接卸载重装程序,重装时端口号不默认,改为80.
改完以后,在浏览器地址栏输入【http://localhost:80】或【localhost】,此时测试成功。
其他参见:/article/455a9950a312a5a166277812.html
03. JSP连接数据库
① 建立JSP文件
在Tomcat安装目录下找到【webapps】—>【ROOT】中建立一个JSP文件(此处为gra.jsp)
② 连接数据库
将以下代码部分写入文件【gra.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="java.sql.*"%><%@ page import="com.mysql.jdbc.Driver" %> <html><head><title>通过JSP读出数据表</title></head><body><% try {Class.forName("com.mysql.jdbc.Driver"); //驱动程序名String url = "jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC"; // 获取mysql连接地址String username = "root"; //数据库用户名String password = "1025"; //数据库用户密码Connection conn = DriverManager.getConnection(url, username, password); //连接状态//若数据库连接成功,则输出查询到的数据结果if(conn != null){out.println("-------------------"); out.print("数据库连接成功!"); out.println("-------------------"); out.println(""); out.print("<br />"); out.print("<br />"); //换行 Statement stmt = null; //给实例赋初值为0ResultSet rs = null; //给结果赋初值为0String sql = "SELECT * FROM grade"; //查询语句,查询成绩表中的数据保存到sqlstmt = conn.createStatement(); //把该对象也就是stmt将SQL语句传递给数据库管理系统执行,通常来说产生结果集,返回给ResultSet对象rs = stmt.executeQuery(sql);out.println("-------------------"); out.print("查询结果:"); out.println("-------------------"); out.print("<br />"); out.println(""); out.print("<br />"); out.println("学号" +  " + "姓名"+"\t "+"数学成绩"+" "+"语文成绩"); out.print("<br />"); //当结果集中还有数据时,依次输出这些数据//resultSet是你查询的结果集合,rs.next相当于一个指针返回true或false,起始位置为0,每调用一次向下移动一下,如果返回true说明还有记录while (rs.next()) {//将查询结果输出 out.println(rs.getString("学号")+"   "+rs.getString("姓名")+" "+rs.getString("数学成绩")+"  "+rs.getString("语文成绩")); out.print("<br />"); } }else{out.print("连接失败!"); } //抛出异常}catch (Exception e) {out.print("数据库连接异常!"); } %> </body></html>
注:一定要设置编码格式为【UTF-8】,否则会出现中文乱码
以下为editplus的【UTF-8】编码方式设置。
【文档】—>【文本编码】—>【转化文本编码】—>【UTF-8】