代码仓库:https://github.com/KarezaC/StudentsInformationManagerSystem
emmmmm,坚持写博客真难啊,向哪些几百篇博文的博主大佬低头。
接上一次,这次一定多坚持几天!
第一件事情,把上次的index.html页面写成jsp的,为了在页面下方增加一个时间显示。代码如下:
<!--这里是welcome.jsp-->
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,
minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>欢迎0.0</title>
</head>
<body>
<h1 align="center">欢迎使用学生管理系统</h1>
<a href="login.jsp"><h2 align="center">点击进入</h2></a>
<div align="center" style="100%; position:fixed; bottom:0;">
<%!Date time = new Date();%>
<%
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 E HH时mm分ss秒");
%>
<% out.println(sdf1.format(time));%>
</div>
</body>
</html>
效果:
好了,第二件事情,数据库连接即基本功能实现。
环境:mysql-8.0.11
使用mysql可视化工具Navicat
要连接数据库首先需要在数据库中建我们要用的库和表(这里我们不对mysql环境搭建经验做分享,如果有同学需要,博主愿意另写一篇专门分享经验的博文)
打开Navicat,建数据库test,再建表stulist,填入一些数据,如图:
OK!切回我们的NetBean,对上一次写的学生信息显示页面displayStuList.jsp进行完善。
完成数据库中学生信息的展示,效果如下:
代码如下:
<!--这里是pages文件夹里的displayStuList.jsp-->
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,
minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>学生信息</title>
</head>
<body>
<%
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"
+ "&serverTimezone=UTC";
String usr = "root";
String password = "root";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, usr, password);
String sqlString = "select * from StuList";
PreparedStatement pstmt = conn.prepareStatement(sqlString);
ResultSet rs = pstmt.executeQuery();
%>
<div align="right">欢迎你,<%=request.getParameter("username")%>
<a href="logout.jsp">退出</a>
</div>
<h2 align="center">学生信息列表</h2>
<br>
<table border=1 style="margin:auto">
<tr>
<td class="listTable">学号</td>
<td class="listTable">姓名</td>
<td class="listTable">性别</td>
<td class="listTable">年龄</td>
<td class="listTable">年级</td>
<td id="profile">个人简介</td>
<td id="operate">操作</td>
</tr>
<%
while (rs.next()) {
out.println("<tr>");
out.println("<td>" + rs.getInt("id") + "</td>");
out.println("<td>" + rs.getString("name") + "</td>");
out.println("<td>" + rs.getString("sex") + "</td>");
out.println("<td>" + rs.getInt("age") + "</td>");
out.println("<td>" + rs.getString("grade") + "</td>");
out.println("<td>" + rs.getString("introduce") + "</td>");
out.println("<td><a href='www.baidu.com'>删除</a></td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
这里我们先分享一下第一个<%%>之间的代码。
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"
+ "&serverTimezone=UTC";
String usr = "root";
String password = "root";
上面这4个东西是什么呢?如果你还没有连接数据库的基础,那我们不妨来一起做一个假设。
假设你现在需要使用手机登录QQ~
driver就相当与你的手机,是你完成登录QQ的根本;url则是你手机中QQ这个app所放的位置,比如你的QQ放在主界面第三页第一排第二个,那么url就是描述这个路径的,usr和password则相对好理解,就是我们登录QQ的账号和密码。四者缺一不可。
接下来我们继续这个例子,
打开手机就是‘Class.forName(driver);’;(这里是步骤1)
完成上面找到QQ图标并打开输入账号密码就是‘Connection conn = DriverManager.getConnection(url, usr, password);’;(这里是步骤2,等于创建了一个工具,未执行这一步骤)
假设我们登录QQ是为了查找一个“honey”这个人,String sqlString = "select * from StuList";这一句代码就是描述查找“honey"这个动作的;(这里是步骤3,等于创建了一个工具,未执行这一步骤)
PreparedStatement pstmt = conn.prepareStatement(sqlString);
上面这句即把步骤2和3组装在一起变成一个步骤更复杂的大工具bigtool。
我们的目的是为了找到“honey”,并把它显示出来,
而ResultSet rs = pstmt.executeQuery();就是创建一个容器rs,把大工具bigtool执行的结果装进去。
至于显示出来的部分,在第二个<%%>
<%
while (rs.next()) {
out.println("<tr>");
out.println("<td>" + rs.getInt("id") + "</td>");
out.println("<td>" + rs.getString("name") + "</td>");
out.println("<td>" + rs.getString("sex") + "</td>");
out.println("<td>" + rs.getInt("age") + "</td>");
out.println("<td>" + rs.getString("grade") + "</td>");
out.println("<td>" + rs.getString("introduce") + "</td>");
out.println("<td><a href='www.baidu.com'>删除</a></td>");
out.println("</tr>");
}
%>
好了,先到这里,下一篇博客我们分享一下,数据库的增加和删除功能~