zoukankan      html  css  js  c++  java
  • Web的Java开发基础分享——学生信息管理系统(二)

        代码仓库: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>");
                    }
                %>

    好了,先到这里,下一篇博客我们分享一下,数据库的增加和删除功能~

    学生信息管理系统(3),传送门:点此

  • 相关阅读:
    【转载】C++针对ini配置文件读写大全
    CString向char类型转化 ---“=”: 无法从“wchar_t *”转换为“char *
    使用了非标准扩展:“xxx”使用 SEH,并且“xxx”有析构函数
    16进制串hex与ASCII字符串相互转换
    【转载】CCombobox使用大全
    获取c++ edit控件内容
    [转载]C++ CString与int 互转
    MacOS Cocos2d-x-3.2 创建HelloWorld项目
    构建之法阅读笔记6--敏捷开发2
    进度条--第十二周
  • 原文地址:https://www.cnblogs.com/kareza/p/13393449.html
Copyright © 2011-2022 走看看