Java实现学生信息管理系统(使用数据库)

下面我来详细讲解Java实现学生信息管理系统使用数据库的完整攻略。

思路

实现学生信息管理系统需要考虑以下几个方面:

  1. 数据库的设计和建立
  2. Java程序连接数据库
  3. Java程序操作数据库
  4. 前端页面的设计和制作
  5. 将Java程序和前端页面结合在一起

在这里我们选择使用MYSQL数据库进行操作,使用JDBC连接数据库,采用MVC设计模式来实现程序。

实现步骤

1. 数据库的设计和建立

首先我们需要设计数据库中的表,表的结构如下:

CREATE DATABASE IF NOT EXISTS `student`;
USE `student`;

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生ID',
  `name` varchar(30) NOT NULL COMMENT '学生姓名',
  `gender` varchar(6) NOT NULL COMMENT '学生性别',
  `age` int(3) NOT NULL COMMENT '学生年龄',
  `class` varchar(30) NOT NULL COMMENT '学生班级',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生表';

2. Java程序连接数据库

在Java中连接数据库需要使用JDBC,需要先导入相关的jar包,这里我们使用的是MySQL Connector的jar包。

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

3. Java程序操作数据库

操作数据库需要使用Java中的Statement和PreparedStatement,在Java中使用Statement时,存在SQL注入的问题,因此建议使用PreparedStatement。

例如,往students表中插入一条记录:

String sql = "insert into students(name, gender, age, class) values(?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "张三");
pst.setString(2, "男");
pst.setInt(3, 18);
pst.setString(4, "一班");
pst.executeUpdate();

查询students表中的所有记录:

String sql = "select * from students";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String gender = rs.getString("gender");
    int age = rs.getInt("age");
    String _class = rs.getString("class");
}

4. 前端页面的设计和制作

前端页面的设计需要根据需求来定,这里我们可以采用Bootstrap来设计前端页面。

例如,我们可以新增学生信息页面如下:

<div class="container">
    <div class="row">
        <div class="col-xs-12 col-md-8 col-md-offset-2">
            <form class="form-horizontal" role="form">
                <div class="form-group">
                    <label class="col-sm-2 control-label">姓名</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" placeholder="请输入姓名" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">性别</label>
                    <div class="col-sm-10">
                        <label class="radio-inline">
                            <input type="radio" name="gender" value="male" /> 男
                        </label>
                        <label class="radio-inline">
                            <input type="radio" name="gender" value="female" /> 女
                        </label>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">年龄</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" placeholder="请输入年龄" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">班级</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" placeholder="请输入班级" />
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-default">提交</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

5. 将Java程序和前端页面结合在一起

将Java程序和前端页面进行结合需要使用Servlet和JSP。

例如,我们可以采用Servlet来处理学生信息的新增:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("name");
    String gender = request.getParameter("gender");
    int age = Integer.parseInt(request.getParameter("age"));
    String _class = request.getParameter("class");
    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);
        String sql = "insert into students(name, gender, age, class) values(?,?,?,?)";
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1, name);
        pst.setString(2, gender);
        pst.setInt(3, age);
        pst.setString(4, _class);
        pst.executeUpdate();
        conn.close();
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    }
    response.sendRedirect("index.jsp");
}

在JSP页面中引用新增学生信息页面:

<jsp:include page="add.jsp" />

示例

这里我提供两个示例来说明如何使用Java实现学生信息管理系统。

示例一

添加学生信息:

  1. 访问网站首页,点击“添加学生”按钮

  2. 进入添加学生信息页面,填写学生信息并点击“提交”按钮

  3. 系统将新增一条学生信息,并返回到学生信息列表页面

查询学生信息:

  1. 访问网站首页,点击“学生列表”按钮

  2. 进入学生信息列表页面,可以看到学生的基本信息

示例二

添加学生信息:

  1. 通过Java程序批量添加学生信息

查询学生信息:

  1. 通过Java程序查询所有学生信息

  2. 将学生信息展示在前端页面上

以上两个示例仅为演示,实际上学生信息管理系统还可以提供修改、删除、查询、导出等功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现学生信息管理系统(使用数据库) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Spring Boot 通过 Mvc 扩展方便进行货币单位转换的代码详解

    接下来我将详细讲解“Spring Boot 通过 Mvc 扩展方便进行货币单位转换的代码详解”的完整攻略,过程中将包含两条示例。 一、背景介绍 在开发过程中,我们经常需要进行货币单位转换。如美元和人民币之间的转换等。本文将通过 Spring Boot 中的 Mvc 扩展来实现货币单位转换。 二、技术准备 在进行具体实现之前,我们需要准备以下技术: 1. Sp…

    Java 2023年5月20日
    00
  • Java消息摘要算法MAC实现与应用完整示例

    我会给出完整的“Java消息摘要算法MAC实现与应用完整示例”的攻略。本文将从以下几个方面进行讲解: 什么是MAC MAC的实现方式 实现Java消息摘要算法MAC Java消息摘要算法MAC的应用 1. 什么是MAC MAC是消息认证码(Message Authentication Code)的简称,它是一种用于验证数据完整性以及认证消息来源的密码学算法。…

    Java 2023年5月19日
    00
  • Kafka 网络中断和网络分区4种场景分析

    Kafka 网络中断和网络分区 4 种场景分析 Kafka 是一个分布式消息系统,网络连接是其正常运行的必要条件。但是,在实践中,网络中断和网络分区可能会发生,这也是 Kafka 面临的常见问题之一。本文将介绍 Kafka 网络中断和网络分区的 4 种常见场景,并提供相关的解决方案。 1. 整个 Kafka 集群网络中断 在这种情况下,整个 Kafka 集群…

    Java 2023年5月20日
    00
  • 详解SpringBoot2 使用Spring Session集群

    详解SpringBoot2 使用Spring Session集群攻略 什么是Spring Session Spring Session是一个支持在不同Web容器之间共享Session数据的项目。 Spring Session的集群 在集群环境下,我们需要使用Spring Session来共享Session数据。具体实现方式如下: 引入Spring Sessi…

    Java 2023年5月19日
    00
  • Java中JSONObject与JSONArray的使用区别详解

    下面是“Java中JSONObject与JSONArray的使用区别详解”的完整攻略: 1. 什么是JSONObject和JSONArray? 在Java中,JSONObject和JSONArray是用于处理JSON数据的两个重要类。 JSONObject表示JSON对象,即一个存储键值对的容器,每个键值对都是由一个字符串作为键和一个值组成的。JSON对象的…

    Java 2023年5月26日
    00
  • spring boot开发遇到坑之spring-boot-starter-web配置文件使用教程

    在Spring Boot开发中,使用spring-boot-starter-web依赖可以快速构建Web应用程序。但是,有时候我们在配置文件中使用该依赖时会遇到一些坑。以下是spring-boot-starter-web配置文件使用教程的完整攻略: 添加spring-boot-starter-web依赖 在Maven或Gradle中添加spring-boot…

    Java 2023年5月15日
    00
  • Spring mvc是如何实现与数据库的前后端的连接操作的?

    Spring MVC 是一个基于 Java 的 Web 框架,它提供了一种简单的方式来构建 Web 应用程序。在 Spring MVC 中,我们可以使用多种方式来实现与数据库的前后端连接操作,包括使用 JDBC、使用 ORM 框架等。本文将详细讲解 Spring MVC 如何实现与数据库的前后端连接操作,包括如何使用 JDBC、使用 MyBatis 框架,并…

    Java 2023年5月18日
    00
  • MyBatis中SqlSession实现增删改查案例

    下面我会详细讲解MyBatis中SqlSession实现增删改查的完整攻略,包含了两个具体的示例。 什么是SqlSession SqlSession是MyBatis中的一个接口,用于执行对数据库的增删改查操作。它的实现类是DefaultSqlSession。 在使用MyBatis时,通常先是通过SqlSessionFactory创建一个SqlSession实…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部