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 实现滑动时间窗口限流算法的代码

    Java 实现滑动时间窗口限流算法的代码,可以通过以下步骤实现: 选择计数器在实现滑动时间窗口限流算法之前,我们需要选择一个计数器,通常情况下,我们会选择计数器的实现方式为Redis实现自增操作。 设置滑动时间窗口的大小在选择计数器后,需要设置滑动时间窗口的大小。滑动时间窗口的大小指的是,在多长时间内进行访问限制。例如,我们可以设置时间间隔为1分钟。如果在1…

    Java 2023年5月19日
    00
  • 详解android studio游戏摇杆开发教程,仿王者荣耀摇杆

    Android Studio游戏摇杆开发教程 本教程将介绍如何在Android Studio中开发游戏摇杆控件,以实现类似于王者荣耀游戏的摇杆控制功能。本教程将涉及到如下内容: 摇杆的原理及实现技术; 摇杆控件的设计; 使用摇杆控件实现王者荣耀摇杆控制功能。 摇杆原理及实现技术 摇杆控件常用的实现方式是利用手指在摇杆区域内滑动的距离和方向来实现控制操作。我们…

    Java 2023年5月26日
    00
  • javaweb实现文件上传与下载功能

    请看以下内容: javaweb实现文件上传与下载功能攻略 1. 上传功能的实现 1.1 前端的实现 上传功能需要用户选择文件,并将文件发送到后台。我们可以通过HTML表单及其相关API来实现此功能。以下是一段HTML代码片段,用于实现文件上传输入框: <form action="/upload" method="post&…

    Java 2023年5月20日
    00
  • 如何设置一定时间内只能发送一次请求

    要实现一定时间内只能发送一次请求,可以使用令牌桶算法来控制请求的频率。该算法的实现分为两个部分,一个是令牌桶的生成,另一个是令牌桶的消费。 令牌桶的生成 令牌桶生成的过程是不断往桶里添加令牌,直到桶的大小达到了上限。每隔一定时间添加一个令牌,即令牌的添加速率为r(个/s),则添加一个令牌的时间间隔为1/r(s)。 为了保证当前添加令牌的时间间隔不会过大,可以…

    Java 2023年6月15日
    00
  • 非常实用的Tomcat启动脚本实现方法

    非常实用的Tomcat启动脚本实现方法 在Linux环境下,通常我们会使用启动脚本的方式来启动Tomcat。而对于初学者来说,编写一个完整可靠的启动脚本不是一件容易的事情。本文将介绍一种非常实用的Tomcat启动脚本实现方法,帮助大家快速实现Tomcat的自动启动、关闭、查看状态等操作。 Step 1: 创建启动脚本 首先,我们需要创建一个启动脚本。为了让脚…

    Java 2023年5月19日
    00
  • Java Spring的核心与设计思想你知道吗

    当谈论Java的web开发时,Spring框架是一个非常重要的选择。那么Spring框架的核心是什么呢?它的设计思想是什么?下面将逐一进行详细讲解。 Spring的核心 Spring框架的核心是IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。 1. 控制反转 (Io…

    Java 2023年5月19日
    00
  • 如何通过XML方式配置并实现Mybatis

    通过XML方式配置实现Mybatis,需要步骤如下: 引入Mybatis依赖(以Maven为例) <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7<…

    Java 2023年5月20日
    00
  • Java 创建线程的3种方法及各自的优点

    下面我将为您详细讲解“Java 创建线程的3种方法及各自的优点”的完整攻略。 Java 创建线程的3种方法及各自的优点 在Java中,创建线程有三种常用的方法,分别为继承Thread类、实现Runnable接口和实现Callable接口。各自的优点如下: 继承Thread类 继承Thread类创建线程是最简单的方法,只需要重写Thread类的run方法即可。…

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