java实现学籍管理系统

 更新时间:2016年12月28日 14:09:17   作者:A_stone_  
这篇文章主要为大家详细介绍了java实现学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本教程为大家分享了学籍管理系统的具体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; 
 } 

} 

更多学习资料请关注专题《管理系统开发》。

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

相关文章

  • Java中的@interface注解使用详解

    Java中的@interface注解使用详解

    这篇文章主要介绍了Java中的@interface注解使用详解,注解@interface不是接口是注解类,在jdk1.5之后加入的功能,使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,需要的朋友可以参考下
    2023-12-12
  • maven升级版本后报错:Blocked mirror for repositories

    maven升级版本后报错:Blocked mirror for repositories

    本文主要介绍了maven升级版本后报错:Blocked mirror for repositories,文中的解决方法非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • 如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解

    如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解

    这篇文章主要介绍了如何在Spring Boot应用中优雅的使用Date和LocalDateTime,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java简易抽奖系统小项目

    Java简易抽奖系统小项目

    这篇文章主要为大家详细介绍了Java简易抽奖系统小项目,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 带大家深入了解Spring事务

    带大家深入了解Spring事务

    Spring框架提供统一的事务抽象,通过统一的编程模型使得应用程序可以很容易地在不同的事务框架之间进行切换. 在学习Spring事务前,我们先对数据库事务进行简单的介绍。,需要的朋友可以参考下
    2021-05-05
  • Spring中事件发布机制及流程详解

    Spring中事件发布机制及流程详解

    这篇文章主要介绍了Spring中事件发布机制及流程详解,在分析源码的过程中,也是大量使用了事件机制,在我分析的这篇博客中,有不少地方都运用了事件发布机制,所以本文的目的是从SpringBoot中学习到事件的发布流程,需要的朋友可以参考下
    2023-11-11
  • Java单例模式继承覆盖多态原理详解

    Java单例模式继承覆盖多态原理详解

    这篇文章主要介绍了Java单例模式继承覆盖多态原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringBoot自定义注解之实现AOP切面日志详解

    SpringBoot自定义注解之实现AOP切面日志详解

    这篇文章主要为大家详细介绍了SpringBoot自定义注解之实现AOP切面统一打印出入参日志,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • java SpringMVC学习使用详解

    java SpringMVC学习使用详解

    本篇文章主要介绍了java SpringMVC——如何获取请求参数详解,详细的介绍了每种参数注解的用法及其实例。感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java设计模式以虹猫蓝兔的故事讲解桥接模式

    Java设计模式以虹猫蓝兔的故事讲解桥接模式

    桥接是用于把抽象化与实现化解耦,使二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响
    2022-04-04

最新评论

?


http://www.vxiaotou.com