java实现学籍管理系统

本教程为大家分享了学籍管理系统的具体java代码,供大家参考,具体内容如下

1.需求分析

1.1系统功能设计

(1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别
(2)能对表格中的学生信息实现增加,删除,查找,修改等功能
(3)能将数据保存到MySQL数据库中,记录下来
(4)能把数据通过mysql数据库进行数据更新

1.2系统模块设计

学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块。系统管理人员能够查询学生的学号,姓名,性别,年龄,所获奖项等信息。
(具体的系统结构设计E-R图请翻阅附录2)

2.系统实现

本系统使用Java/JDBC语言编程的方法实现学籍管理。
用Java实现mysql数据库,该技术主要是使用了导入JDBC.jar,使得Java程序员能够自由调用标准数据库访问类和接口。
JDBC和Java结合使用,使用户可以容易的使用sql语句实现数据库的大部分操作,而Java的容易移植,适合于多种操作系统的特点配合JDBC使用,可以满足用户需求。

2.1主要布局文件

根据“一事一地原则”,进行该程序的布局,书写了相关文档供用户阅读,mysql中的数据也可以导出到“studinfo.txt”文件中,便于用户打印或者查阅。采用的JDBC为5.0.8版本。 2.2关键接口段代码及其注解

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class TestJDBC {
 public static void main(String[] args) {

  try {
   Class.forName("com.mysql.jdbc.Driver");

   // 建立与数据库的Connection连接
   // 数据库所处于的ip:127.0.0.1 (本机)
   // 数据库的端口号: 3306 (mysql专用端口号)
   // 数据库名称 studinfo
   // 编码方式 UTF-8
   // 账号 root
   // 密码 admin

   Connection c = DriverManager
     .getConnection(
       "jdbc:mysql://127.0.0.1:3306/studinfo?characterEncoding=UTF-8",
       "root", "admin");

   System.out.println("连接成功,获取连接对象: " + c);

  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }

 }
}

2.2 DAO接口

package jdbc;

import java.util.List;

import charactor.student;

public interface DAO{
 //增加
 public void add(student stud);
 //修改
 public void update(student stud);
 //删除
 public void delete(int id);
 //获取
 public Hero get(int id);
 //查询
 public List<student> list();
 //分页查询
 public List<student> list(int start, int count);
}

//详细sql语句和代码实现请查后页附录备注!

2.3 设计方法

采用单例化的设计模式,在分别设计增删查改功能时,分别独立的调用数据库,以免后期维护软件麻烦,本软件将连接数据库功能独立的拿出来作为一个类,在后期使用的时候只需要调用即可,无需反复实现大段的数据库连接代码,减少代码冗余,利于后期系统的进一步完善,以及便于其他程序员阅读。

(下面为了老师阅读方便,只做sql-conncet连接的单例展示!)

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
 static String ip = "127.0.0.1";
 static int port = 3306;
 static String database = "student";
 static String encoding = "UTF-8";
 static String loginName = "root";
 static String password = "admin";
 static{
  try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }

 public static Connection getConnection() throws SQLException {
  String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", ip, port, database, encoding);
  return DriverManager.getConnection(url, loginName, password);
 }
}

2.4界面展示
在界面下方通过按钮实现增删修改和导入功能,在下方的填选框中可键入学生id实现查询功能(这里假设id为该系统唯一的主键,触发回车即可)

3.系统缺陷

该系统存在很多bug,例如在导入导出数据的时候,新数据和旧数据之间的空行无法消除,新的学号插入时和旧学号可能会引起冲突,导致软件自动关闭,总体来说还有很多进步的地方,望进一步修复。
其次就是,本次设计的软件的实体只有一个学生,较为单一,所以实现起来不是太麻烦,只是没有很多的余地将上课学的E-R图等设计的实现加入考察,希望寒假可以实现学生,课程,以及老师三表之间的查询,将这个系统进一步完善。

4.文件系统实现和数据库实现的优劣

文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。

数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。提高了数据的共享性;降低了数据的冗余度,提高了数据的一致性;采用一定的数据模型实现数据结构化;数据由DBMS统一管理和控制,且更利于非计算机人士的操作和使用,降低了学习成本。并且随着数据库技术的发展和当今软件配合使用,使得用户都意识不到自己的软件在使用数据库功能。

附录1:代码片段中的sql语句实现增删查改
(功能的实现较为相同,这里展示第一个update,add,delete功能就不重复展示繁琐的代码了,只列出关键代码以供查阅)

1.更新的实现

// update 实现代码片段

public update(Student stu) {
  boolean result = false;
  if (stu == null) {
   return result;
  }
  try {
   // check
   if (queryBySno(stu.getSno()) == 0) {
    return result;
   }
   // 实现update
   String sql = "update student set id=?,name=?,class=?,sex=?";
   String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex() };
   int rowCount = db.executeUpdate(sql, param);
   if (rowCount == 1) {
    result = true;
   }
  } catch (SQLException se) {
   se.printStackTrace();
  } finally {
   destroy();
  }
  return result;
 }

2.delete实现代码(格式和类的建立都与1相同,更改sql语句即可)

String sql = "delete from student where id=?”;
String[] param = { stu.getId()};

3.add实现代码

String sql = "insert into student(id,name,class,sex) values(?,?,?,?)";
String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex()};   

4.查询实现(根据id查询)

private int queryById(String id) throws SQLException {
 int result = 0;
 if ("".equals(id) || id == null) {
  return result;
 }
 String checkSql = "select * from student where id=?";
 String[] checkParam = { id };
 rs = db.executeQuery(checkSql, checkParam);
 if (rs.next()) {
  result = 1;
 }
 return result;
 } 

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JAVA实现简单停车场系统代码

    JAVA项目中正号需要一个停车收费系统,就整理出来给大家分享一下,希望对大家有所帮助. <h1 accuse="qTitle" style="margin: 0px; padding: 0px; font-size: 16px; font-stretch: normal; line-height: 26px; font-family: "PingFang SC", "Lantinghei SC", "Microsoft

  • Java实现一个达达租车系统的步骤详解

    本文介绍的是利用java编写一个控制台版的"达达租车系统",下面话不多说了,来看看详细实现方法吧. 实现目标 java编写一个控制台版的"达达租车系统" 实现功能 1.展示所有可租车辆 2.选择车型.租车量 3.展示租车清单,包含:总金额.总载货量及其车型.总载人量及其车型 三大分析 数据模型分析 业务模型分析 显示和流程分析 实现效果 租车页面 租车账单 实现思路 首先定义一个Car类,它包含基本功能:车名.载客数.载货量.日租金.接着创建三个小类,分别是客车类.

  • Java实现排球比赛计分系统

    初步计划: 或许由于个人原因,排球计分系统在假期就完成了,一直未写博客,就这样一直在推就是不想写,在加上过完年就工作了,可能刚实习工作比较紧所以一直等到现在. 写这个系统之前我简单构思了一下,因为离校前我去洛阳参加了一个多月的Java培训,所以写项目用的ide是Java环境.刚开始考虑用jsp做界面,架构用mvc,但是后来一想工作量太大而且效果也不是很好.最终写了纯Java代码,在虚拟机上展示. 需求分析: 排球竞赛为五局三胜制,每局比赛中得够25分并且领先对方2分以上的一方将获得一局胜利,先获

  • Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码

    不用单点登录,模拟远程项目的登录页面表单,在访问这个页面的时候自动提交表单到此项目的登录action,就可以实现登录到其他系统. ssh框架项目 1.以下是本地系统的action代码: import java.io.IOException; import java.util.List; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.i

  • Java点餐小程序之黑心商人

    很久以前,有一个女人,开了一家酒店,她的名字叫孙二娘.下面是她找人做的点餐小程序.代码如下: import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.ArrayList; import java.util.Scanner; import java.util.Set; public class MyDianCai { sta

  • Java中SSM+Shiro系统登录验证码的实现方法

     先给大家展示下效果图: 1.验证码生成类: import java.util.Random; import java.awt.image.BufferedImage; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; /** * 验证码生成器类,可生成数字.大写.小写字母及三者混合类型的验证码. 支持自定义验证码字符数量: 支持自定义验证码图片的大小: 支持自定义需排除的特殊字符: * 支持自定义干扰线

  • java实现学籍管理系统

    本教程为大家分享了学籍管理系统的具体java代码,供大家参考,具体内容如下 1.需求分析 1.1系统功能设计 (1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别 (2)能对表格中的学生信息实现增加,删除,查找,修改等功能 (3)能将数据保存到MySQL数据库中,记录下来 (4)能把数据通过mysql数据库进行数据更新 1.2系统模块设计 学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块.系统管理人员能够查询学生的学号,姓名,性别,年龄,所获奖项等信息

  • java实现简易的学籍管理系统

    本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下 一. 代码 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*;   public class TestStudentManager {     private int rows = 0;     private String[][] unit = new String[rows][5];    

  • Java实现简易学籍管理系统

    本文实例为大家分享了Java实现简易学籍管理系统的具体代码,供大家参考,具体内容如下 1.我们先来讲讲什么是泛型化编程 package 学生管理系统;   import java.util.ArrayList; import java.util.List;   /*  * 进行泛型化编程  * @autor:pcb  * */ public class TestGeneric {     //进行泛型化编程,规定类型.     public List <CourseClass> courses

  • Java超详细教你写一个学籍管理系统案例

    目录 前言 一.学籍管理系统功能介绍 1.介绍 2.学籍管理系统的主要功能图示 3.代码编写的思路 二.定义学生类 1.学生类名称: 2.包含的成员变量 3.构造方法 4.成员方法 5.代码示例 三.主界面的代码编写 1.思路 2.代码示例 四.系统功能方法的实现 1.添加学生信息的代码编写 1.1 思路 1.2 添加学生信息的方法说明图 1.3 代码示例 2.查看学生信息的代码编写 2.1 思路 2.2 查看学生信息的方法说明图 2.3 代码示例 3.删除学生信息的代码编写 3.1 思路 3.

  • Java+mysql实现学籍管理系统

    本文实例为大家分享了Java+mysql实现学籍管理系统的具体代码,供大家参考,具体内容如下 一.myswql数据库表格 项目使用mysql数据库,有2张表格.一张用户表用于登录验证,一张学生表,用于增删改查. creat table t_user( id int primary key auto_increment, login_name varchar(255), login_pwd  varchar(255), real_name varchar(255), ); insert into

  • java基于控制台的学生学籍管理系统

    本文实例为大家分享了java实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 关键技术:循环,switch条件判断,创建对象,ArrayList()动态数组或集合,private 系统功能: 1.添加学生 (学号,姓名,年龄,居住地)以学号为基准进行遍历,如果学号已存在,则重新输入2.修改学生 同样以学号为判断依据,输入要修改的学生学号,依次重新输入姓名,年龄,居住地,如果学号输入错误,则提示重新输入3.删除学生 以学号为基准进行判断,学号不存在则进行提示:学号存在,则删除改学号所包含的

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • java学生信息管理系统MVC架构详解

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下 一.项目结构 学生信息管理系统分三层进行实现.student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据.Stuview.java用于单一的用来显示数据. 二.源码 1.1.Student 类 /* * @FileName: Student.class * @version:1.0 * @author:nazi * 描述:模型层 * */ import java.io.Serial

  • Java实现员工管理系统

    本文实例为大家分享了Java实现员工管理系统的具体代码,供大家参考,具体内容如下 本系统主要练习到的相关内容: 1. 流程控制语句 2. 类.对象 3. 封装.继承.多态 4. 方法的重载.重写 5. 访问修饰符 6. static 需求说明: 员工信息的基本情况 ---------普通员工---------– 属性:员工编号.员工姓名.员工职务.请假天数.基本工资 普通员工工资: 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助 基本工资+基本工资*0.1+基本工资*0

  • Java实现学生管理系统

    项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的流程图 import java.util.Scanner; public class Stu{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); boolean flag = false; int stuN

随机推荐