通过JSP网页连接MySQL数据库,读出一张表并显示在JSP网页中

这篇博客旨在教读者如何通过JSP连接到MySQL数据库,并在网页中展示数据表。首先,使用Navicat Premium创建数据表,然后将JDBC驱动放入Tomcat的lib目录,设置Tomcat并确保其正常运行。接着,创建JSP文件并编写代码连接数据库,最终实现在JSP页面上显示数据表。
学习目的:
  • 通过JSP网页连接到MySQL数据库
  • 在MySQL数据库中建立一张数据表
  • 将建立的表显示在JSP网页中
准备工作:

01. 用Navicat Premium建立数据表

打开Navicat Premium–>【连接】–>【MySQL】–>【连接名:新建数据库的名字,此处为“本地”】;【主机:你本机的ip地址或者直接输入’localhost’】;【端口:一般为默认的3306】;【用户名:默认为‘root’】;【密码:进入mysql命令时设置的密码】–>【确定】。之后点击建立的连接就可查看数据库内容。
在这里插入图片描述

【Navicat Premium 具体建表过程参见:
https://blog.youkuaiyun.com/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】,此时测试成功。
在这里插入图片描述

其他参见:https://jingyan.baidu.com/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;  //给实例赋初值为0
                ResultSet rs = null;   //给结果赋初值为0
                String sql = "SELECT * FROM grade";  //查询语句,查询成绩表中的数据保存到sql
                stmt = 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("学号" + &nbsp" + "姓名"+"\t&nbsp"+"数学成绩"+"&nbsp"+"语文成绩");  
                out.print("<br />");  
				//当结果集中还有数据时,依次输出这些数据
				 //resultSet是你查询的结果集合,rs.next相当于一个指针返回true或false,起始位置为0,每调用一次向下移动一下,如果返回true说明还有记录
                while (rs.next()) { 
                 //将查询结果输出 
				 out.println(rs.getString("学号")+"      &nbsp&nbsp        "+rs.getString("姓名")+"          &nbsp      "+rs.getString("数学成绩")+"     &nbsp    "+rs.getString("语文成绩")); 
				  out.print("<br />");  
            }  
            }
            else{  
                out.print("连接失败!");  
            }  
			//抛出异常
        }catch (Exception e) {        
            out.print("数据库连接异常!");  
        }  
%>   
</body>
</html>

注:一定要设置编码格式为【UTF-8】,否则会出现中文乱码
以下为editplus的【UTF-8】编码方式设置。

【文档】—>【文本编码】—>【转化文本编码】—>【UTF-8】
在这里插入图片描述
在这里插入图片描述

04. 在JSP网页中显示数据表

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值