logo资料库

Java版学籍管理系统.pdf

第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
资料共33页,剩余部分请下载后查看
学生信息管理系统开发报告 1111 功能要求 1.能够通过Swing界面实现学生信息系统的增加、修改、删除、查看和查询功能 2.学生信息必须包含学生的姓名,学号,班级,性别,出生年月,入学日期,专业 3.使用表格控件实现数据的展示 4.查看功能提供双击或右键菜单查看的方式来实现 5.修改和删除必须通过右键菜单的方式来实现 6.学生信息存储在数据库中 2222 开发目的 1.考察Java图形化编程能力 2.考察Java数据库编程能力 JavaJavaJava核心知识 3333 所需Java 1.Java Swing(右键菜单,对话框,表格控件) 2.jar包的调用 3.数据库操作 4444 开发环境及相关软件准备 需要安装的软件为: 1. JDK6 2. NetBeans7.0 3. MySQL(本例版本为5.1.34) 4. 连接MySQL的JDBC驱动,为一jar包 5. DBConnect.java 5555 开发步骤 5.1 开发思路
本例可视为一个完整的、具有操作界面的数据库系统,这类系统的开发适合采取MVC模式, 因此本例的开发步骤如下。 (1)数据库设计,创建学生表studentsystem (2)建立NetBeans项目,并将MySQL的JDBC驱动加载到项目中 (3)在项目中创建studentsystem表映射的Java Bean (4)编写studentsystem表的数据库操作功能类,主要包括对studentsystem表的增加、修 改、删除和查询等功能(上述3,4部即完成模型层的开发--Model) (5)设计Swing界面(即视图层的开发--View) 5.2 学生信息表的创建 进入 MySQL 后,点击左侧功能导航栏的 Catalogs,能列出所有已经创建的数据库。 在 Schemata 的 空 白 区 域 右 键 �Create New Schema� 将 数 据 库 的 名 字 设 为 studentsystem, 单击 ok。确定表的结构: 字段名 stuid stuno stuname stuclass stusex stubirth stuenter sdept 类型 int varchar varchar varchar varchar datetime datetime varchar 是否为主键 备注 √√√√ 自增长、唯一标示 学号 姓名 班级 性别 出生日期 入学日期 专业
点击 Create Table 按钮后,在弹出界面中按照上述表内容录入相应的内容,如图。 录入完成后,点击 Apply Changes,弹出创建的 SQL 窗口。点击 Execute 按钮后, 返回表格创建界面,再点击 Close 按钮,完成。 NetBeans 5.5.5.5.3333 NetBeans NetBeans NetBeans 项目的建立 打 开 NetBeans7.0 , 在 左 侧 项 目 区 右 键 —> 新 建 项 目 , 选 择 其 中 的 Java—>Java 应用程序,下一步,输入项目名称 StudentSystem,去掉创建主类前 面的勾,点击完成后,项目创建成功。 5.4 包的创建以及 jar 包的导入 右击源包新建三个 Java 包,包名分别为 bean 、 util 、view 。 在库下面导入 jar 包 mysql-connector-java-5.1.18-bin.jar ,在 util 包下导入 DBConnect.Java 和 DateFun。 5.5 模型层开发 这一层的开发主要编写两个类 student 和 studentDAO。
student 类是数据库表在项目中的映射,类的属性和数据库表保持一致,并 加上 setter 和 getter 方法。该类放在 bean 包下,代码如下。 public class student { private int stuid; private String stuno; private String stuname; private String stuclass; private String stusex; private Date stubirth; private Date stuenter; private String sdept; } 接着,在private Date stuenter;的下一行,右击—>插入代码,在弹出菜单中 选择getter和setter,选中所有的字段。 完整代码如下: public class student { private int stuid; private String stuno; private String stuname; private String stuclass; private String stusex; private Date stubirth; private Date stuenter; private String sdept; public String getSdept() { return sdept; } public void setSdept(String sdept) { this.sdept = sdept; } public Date getStubirth() { return stubirth; } public void setStubirth(Date stubirth) { this.stubirth = stubirth; }
public String getStuclass() { return stuclass; } public void setStuclass(String stuclass) { this.stuclass = stuclass; } public Date getStuenter() { return stuenter; } public void setStuenter(Date stuenter) { this.stuenter = stuenter; } public int getStuid() { return stuid; } public void setStuid(int stuid) { this.stuid = stuid; } public String getStuname() { return stuname; } public void setStuname(String stuname) { this.stuname = stuname; } public string getStuno() { return stuno; } public void setStuno(String stuno) { this.stuno = stuno; } public String getStusex() { return stusex; } public void setStusex(String stusex) { this.stusex = stusex; } } 接下来,编写 studentDAO 方法,在 bean 包里新建 Java 类,取名 studentDAO,该类要 实现的功能对应的方法如下:
功能 增加学生信息 修改学生信息 删除学生信息 方法 public void Add(student obj) public void Edit(student obj) public void Del(int stuid) 学生信息的封装方法 public void sestudent(student obj, ResultSet datars) 查看全部学生信息 根据学号查询信息 根据姓名查询信息 根据班级查询信息 根据专业查询信息 获取表中所有信息 public student getStuById(int stuid) public List getStuByStuno(String stuno) public List getStuByStuname(String stuname) public List getStuByStuclass(String stuclass) public List getStuBySdept(String sdept) public List getStudentList() 同时为了提高效率,在 studentDAO 中,再加入三个公共属性。 private DBConnect dbc; private ResultSet rs; private String sql; (1)public void Add(student obj)方法的编写 该方法接收从控制器传来的已经包含有数据的student对象,从对象中通过getter方法获 取数据,并调用DBConnect类中的数据库操作方法进行student表记录的增加。 public void Add(student obj) { sql="insert into student(stuno,stuname,stuclass,stusex,stubirth,stuenter,sdept)values(?,?,?,?,?,?,?)"; try { dbc = new DBConnect(sql); dbc.setString(1, obj.getStuno()); dbc.setString(2, obj.getStuname()); dbc.setString(3, obj.getStuclass()); dbc.setString(4, obj.getStusex()); dbc.setDate(5, (Date) obj.getStubirth()); dbc.setDate(6, (Date) obj.getStuenter()); dbc.setString(7, obj.getSdept()); dbc.executeUpdate(); } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { dbc.close(); dbc = null; } catch (Exception e) {
System.out.println(e.getMessage()); } } } (2)public void Edit(student obj)方法的编写 该方法接收从控制器传来的已经包含有数据的 student 对象,并调用 DBConnect 类中的 数据库操作方法进行 student 表记录的修改。 public void Edit(student obj) { sql = "update student set stuno=?,stuname=?,stuclass=?,stusex=?,stubirth=?,stuenter=?, sdept=? where stuid=? "; try { dbc = new DBConnect(sql); dbc.setString(1, obj.getStuno()); dbc.setString(2, obj.getStuname()); dbc.setString(3, obj.getStuclass()); dbc.setString(4, obj.getStusex()); dbc.setDate(5, (Date) obj.getStubirth()); dbc.setDate(6, (Date) obj.getStuenter()); dbc.setString(7, obj.getSdept()); dbc.setInt(8, obj.getStuid()); dbc.executeUpdate(); } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { dbc.close(); dbc = null; } catch (Exception e) { System.out.println(e.getMessage()); } sql = null; } } (3)public void Del(int stuid)方法的编写 public void Del(int stuid) { sql = "delete from student where stuid=?"; try { dbc = new DBConnect(sql); dbc.setInt(1, stuid); dbc.executeUpdate(); } catch (Exception e) { System.out.println(e.getMessage());
} finally { try { dbc.close(); dbc = null; } catch (Exception e) { System.out.println(e.getMessage()); } sql = null; } } (4)public void sestudent(student obj, ResultSet datars)方法的编写 该方法实现将数据库中的记录赋值给 student 对象,该方法是为查询学生信息服务的, 主要是为了从总体上简化代码的编写。 public void sestudent(student obj, ResultSet datars) throws SQLException { obj.setStuid(datars.getInt("stuid")); obj.setStuno(datars.getString("stuno")); obj.setStuname(datars.getString("stuname")); obj.setStuclass(datars.getString("stuclass")); obj.setStusex(datars.getString("stusex")); obj.setStubirth(datars.getDate("stubirth")); obj.setStuenter(datars.getDate("stuenter")); obj.setSdept(datars.getString("sdept")); } (5)public student getStuById(int stuid)方法的编写 该方法根据stuid获取含有数据的student对象。 public student getStuById(int stuid) { sql = "select * from student where stuid=?"; student obj = null; try { dbc = new DBConnect(sql); dbc.setInt(1, stuid); rs = dbc.executeQuery(); if (rs.next()) { obj = new student(); sestudent(obj, rs); } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { rs.close(); rs = null;
分享到:
收藏