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日

相关文章

  • Java Thread 类和Runnable 接口详解

    Java Thread 类和 Runnable 接口详解 概述 Java 中的线程是并发编程的核心内容,可以同时执行多个任务。Java 提供了两种线程的方式:继承Thread类和实现Runnable接口。 Thread 类 Thread类是Java中的一个顶级类,使用它可以快速地创建并发程序。Java 程序中的 main() 方法也是一个线程,使用Threa…

    Java 2023年5月19日
    00
  • Java后端长时间无操作自动退出的实现方式

    实现Java后端长时间无操作自动退出,主要需要使用Java的定时器和线程等相关技术。 以下是实现Java后端长时间无操作自动退出的完整攻略: 第一步:设置最大空闲时间和定时器 首先,我们需要设置一个最大空闲时间,当用户最后一次请求后,超过了该时间,就会被认为是无操作状态。例如,我们设置最大空闲时间为10分钟。 接下来,我们需要使用Java的定时器,定时器会在…

    Java 2023年5月20日
    00
  • 微信小程序学习总结(二)样式、属性、模板操作分析

    “微信小程序学习总结(二)样式、属性、模板操作分析”是一篇关于微信小程序开发中样式、属性和模板操作的总结文章。在这篇文章中,作者讲解了小程序中涉及到的样式、属性和模板的操作方法,同时给出了一些示例,方便读者了解和掌握这些操作的具体方法。 一、样式操作: 小程序的样式操作主要涉及到对组件样式表的修改。在小程序中,我们可以通过以下两种方式来修改组件的样式: 内联…

    Java 2023年5月23日
    00
  • java整合SSM框架的图文教程

    下面是Java整合SSM框架的完整攻略: 第一步:环境配置 在整合SSM框架前,需要先准备好相关环境。具体包括以下步骤: 安装JDK并配置环境变量。 安装Tomcat,并在Eclipse或IntelliJ IDEA中配置Tomcat服务器。 安装MySQL数据库,并在本机或远程服务器中创建相应数据库。 下载SSM框架的相关jar包,并将它们放置在项目的cla…

    Java 2023年5月19日
    00
  • Junit启动测试mybatis xml文件BindingException: Invalid bound statement问题

    背景:1、正常启动,xml文件放在java目录和resource目录下均正常    2、junit启动,xml文件放在resource目录下正常,放在java目录下报BindingException错误 mapperlocation绑定地址为:”classpath:com/a/b/**/*.xml”   原因就在于绑定的地址有问题。   junit生成的te…

    Java 2023年4月22日
    00
  • Java计算代码段执行时间的详细过程

    计算代码段执行时间在Java中非常常见,我们可以通过多种方式来实现。下面我将向您详细介绍如何使用Java代码计算代码段执行时间的完整攻略: 步骤一:编写需要计算时间的代码段 首先,我们需要编写需要计算时间的代码段。作为例子,我们假设我们需要计算一个数组排序的时间。这是我们的代码段示例: import java.util.Arrays; public clas…

    Java 2023年5月20日
    00
  • 详解Java并发编程基础之volatile

    下面我将详细讲解“详解Java并发编程基础之volatile”的攻略。首先,我们需要了解volatile的作用。 什么是volatile 在Java中,一个变量被声明为volatile,意味着它是一个“易变的”变量。它告诉编译器和JVM,这个变量在任何时刻都可能被其它线程修改,因此需要特别处理。 volatile的应用场景 volatile主要用于保证变量的…

    Java 2023年5月19日
    00
  • JDBC连接MySQL5.7的方法

    JDBC是Java语言操作数据库的标准接口,而MySQL是目前最受欢迎的开源数据库之一。在本文中,我们将探讨如何使用JDBC连接MySQL 5.7数据库。 步骤1:下载MySQL JDBC驱动程序 首先,我们需要下载MySQL官方提供的JDBC驱动程序,从而能够在Java应用程序中访问MySQL 5.7数据库。你可以从以下链接下载最新的MySQL JDBC驱…

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