37 信息管理系统文档格式.docx

上传人:b****5 文档编号:16078874 上传时间:2022-11-18 格式:DOCX 页数:28 大小:659.48KB
下载 相关 举报
37 信息管理系统文档格式.docx_第1页
第1页 / 共28页
37 信息管理系统文档格式.docx_第2页
第2页 / 共28页
37 信息管理系统文档格式.docx_第3页
第3页 / 共28页
37 信息管理系统文档格式.docx_第4页
第4页 / 共28页
37 信息管理系统文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

37 信息管理系统文档格式.docx

《37 信息管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《37 信息管理系统文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

37 信息管理系统文档格式.docx

[零基础学JAVA]JavaSE应用部分-37.JavaSE实战开发

:

(mars_25):

:

(mars_21):

 

MIS信息管理系统实战开发之使用MySQL实现保存

开发背景

ID、姓名、年龄为公共信息,而学生有成绩,工人有工资

定义一个抽象类Person(ID、姓名、年龄),学生是其子类,有成绩,工人是其子类有工资

ID如何定义呢?

ID最好可以自己生成,最好的方式是采用下面的编码方式:

·

标记+时间戳+三位随机数

例如:

2009年3月2220:

10:

10.345

学生的标记为s,工人的标记为w

生成的ID号:

学生-->

s20090322201010345023

工人-->

w20090322201010345023

因为现在的程序要满足文件和数据库的操作标准,所以此处应该定义出一个公共的标准——接口

查询信息的时候可以进行排序操作,可以使用Comparable接口完成。

整个代码中牵扯到数据层的操作

数据层就是指真实的数据操作-->

CRUD。

最终结果操作的肯定是一个人(人为工人和学生)

应该进行分开,一个是全部的学生管理,一个是全部的工人管理。

数据层操作标准定义完成之后,有两种选择,一种是直接使用子类实现,但是以后的修改不是很方便,

所以此处最好使用代理设计的思路完成,做一个中间层。

代码关系:

Main-->

Menu-->

PersonOperate-->

DAO

因为程序即要求使用文件保存,又要求使用数据库保存,所以此处可以设计出一个工厂,通过此工厂进行DAO的操作子类实例取得。

在之前程序的基础上加入数据库的功能,现在不使用文件保存了,而使用数据库进行保存。

如果现在要是把一个完整的PersonDAO接口分为StudentDAO和WorkerDAO两个接口,则调用处就不用修改代码。

数据库使用的是mysql,所以需要单独安装一个数据库的驱动程序

##################Michael分割线##########################

PersonDAO.java

packageorg.michael.demo.dao;

importjava.util.Set;

importorg.michael.demo.vo.Person;

//定义具体的数据的操作方法

publicinterfacePersonDAO{

/**

*插入数据的操作

*

*@paramperson

*插入的是一个人员信息

*@return操作成功与否的提示

*@throwsException

*如果有错误,则把错误抛给调用处处理

*/

publicbooleandoCreate(Personperson)throwsException;

*更新数据操作

*更新的具体信息

*@return更新成功与否的提示

*如果有错误,则把错误抛出

publicbooleandoUpdate(Personperson)throwsException;

*按id删除信息

*@paramid

*人员的编号

*@return删除与否的提示

*如果有错误,则在调用处处理

publicbooleandoDelete(Stringid)throwsException;

*因为查询是多个,所以要返回Set集合

*@return全部的查询结果,一个Set中包含了多个Person对象

publicSet<

Person>

findAll()throwsException;

*按id进行查询

*@return具体的人员信息

publicPersonfindById(Stringid)throwsException;

*按关键字进行查询

*@paramkeyWord

*输入的关键字

*@return返回一组信息

findByLike(StringkeyWord)throwsException;

}

PersonDAOImplJDBC.java

packageorg.michael.demo.dao.impl;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.util.TreeSet;

importorg.michael.demo.dao.PersonDAO;

importorg.michael.demo.dbc.DataBaseConnection;

importorg.michael.demo.vo.Student;

importorg.michael.demo.vo.Worker;

publicclassPersonDAOImplJDBCimplementsPersonDAO{

privateDataBaseConnectiondbc=null;

privateStringtype=null;

//查询操作分为两点,要么是查询工人,要么是查询学生

publicPersonDAOImplJDBC(Stringtype){

this();

this.type=type;

}

publicPersonDAOImplJDBC(){

publicbooleandoCreate(Personperson)throwsException{

this.dbc=newDataBaseConnection();

booleanflag=false;

try{

PreparedStatementpstmt=null;

//如果传入的是学生,则type为0,如果传入的是工人,则type为1

Stringsql=null;

floattemp=0.0f;

if(personinstanceofStudent){

Studentstu=(Student)person;

temp=stu.getScore();

sql="

INSERTINTOtperson(id,name,age,score,type)VALUES(?

?

0)"

;

if(personinstanceofWorker){

Workerwor=(Worker)person;

temp=wor.getSalary();

INSERTINTOtperson(id,name,age,salary,type)VALUES(?

1)"

pstmt=this.dbc.getConnection().prepareStatement(sql);

pstmt.setString(1,person.getId());

pstmt.setString(2,person.getName());

pstmt.setInt(3,person.getAge());

pstmt.setFloat(4,temp);

pstmt.executeUpdate();

pstmt.close();

flag=true;

}catch(Exceptione){

throwe;

}finally{

//最终无论是否发生异常,都必须关闭数据库

this.dbc.close();

returnflag;

publicbooleandoDelete(Stringid)throwsException{

DELETEFROMtpersonWHEREid=?

"

pstmt.setString(1,id);

publicbooleandoUpdate(Personperson)throwsExcept

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1