本教程为大家分享了学籍管理系统的具体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学籍管理系统
# java管理系统
# java学籍管理
# Java+mysql实现学籍管理系统
# Java超详细教你写一个学籍管理系统案例
# Java实现简易学籍管理系统
# java实现简易的学籍管理系统
# Java+Mysql学生管理系统源码
# javaWeb实现学生信息管理系统
# Java+MySQL实现学生信息管理系统源码
# java学生管理系统界面简单实现(全)
# java学生信息管理系统源代码
# java基于控制台的学生学籍管理系统
# 管理系统
# 后期
# 应用程序
# 自己的
# 结构化
# 端口号
# 提高了
# 系统实现
# 降低了
# 第一个
# 就不
# 较高
# 分页
# 只有一个
# 作为一个
# 只需要
# 可以实现
# 能把
# 拿出来
# 内有
相关文章:
大同网页,大同瑞慈医院官网?
如何用好域名打造高点击率的自主建站?
如何在IIS中新建站点并配置端口与IP地址?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何做网站制作流程,*游戏网站怎么搭建?
如何快速搭建响应式可视化网站?
重庆市网站制作公司,重庆招聘网站哪个好?
如何通过山东自助建站平台快速注册域名?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
建站之星后台密码遗忘?如何快速找回?
中山网站推广排名,中山信息港登录入口?
jQuery 常见小例汇总
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
网站微信制作软件,如何制作微信链接?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
高防服务器如何保障网站安全无虞?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何在建站之星绑定自定义域名?
微课制作网站有哪些,微课网怎么进?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Python路径拼接规范_跨平台处理说明【指导】
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何通过FTP空间快速搭建安全高效网站?
宝塔建站助手安装配置与建站模板使用全流程解析
如何快速配置高效服务器建站软件?
宁波免费建站如何选择可靠模板与平台?
如何快速搭建高效简练网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
一键网站制作软件,义乌购一件代发流程?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
广平建站公司哪家专业可靠?如何选择?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
盘锦网站制作公司,盘锦大洼有多少5G网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何通过老薛主机一键快速建站?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何在建站之星网店版论坛获取技术支持?
如何通过网站建站时间优化SEO与用户体验?
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何用虚拟主机快速搭建网站?详细步骤解析
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
招贴海报怎么做,什么是海报招贴?
网站制作报价单模板图片,小松挖机官方网站报价?
如何在搬瓦工VPS快速搭建网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何解决ASP生成WAP建站中文乱码问题?
Swift中循环语句中的转移语句 break 和 continue
*请认真填写需求信息,我们会在24小时内与您取得联系。