DAO 系统(信息管理系统的开发)

今天开发了一个小系统:先看一下测试界面:

           学校信息管理程序         
           1: 学生信息管理         
           2: 工人信息管理         
           3: 退出系统             


请选择所需要的操作:
s
输入的内容必须是整数,请重新输入:
2
           工人信息管理          
        1: 增加工人信息          
        2: 列出全部工人信息      
        3: 查询工人信息          
        4: 删除工人信息          
        5:修改工人信息          
        6:返回上一级菜单          


请选择具体的操作:
1
请输入工人姓名:d
请输入工人年龄:d
输入的内容必须是整数,请重新输入:
34
请输入工人工资:34.56
           工人信息管理          
        1: 增加工人信息          
        2: 列出全部工人信息      
        3: 查询工人信息          
        4: 删除工人信息          
        5:修改工人信息          
        6:返回上一级菜单          


请选择具体的操作:
3
请输入查询的关键字:
d
ID   姓名 年龄 工资
s20100226204646796653 d 34 34.56
           工人信息管理          
        1: 增加工人信息          
        2: 列出全部工人信息      
        3: 查询工人信息          
        4: 删除工人信息          
        5:修改工人信息          
        6:返回上一级菜单          


请选择具体的操作:
5
请输入要修改的工人的ID:s20100226204646796653
输入工人姓名(原姓名:d):d
输入工人年龄(原年龄:34):25
输入工人工资(原工资:34.56):99.63
           工人信息管理          
        1: 增加工人信息          
        2: 列出全部工人信息      
        3: 查询工人信息          
        4: 删除工人信息          
        5:修改工人信息          
        6:返回上一级菜单       

 

 

还是看一下设计思想:

 

ID、姓名、年龄为公共信息,而学生有成绩,工人有工资
定义一个抽象类Person(ID、姓名、年龄),学生是其子类,有成绩,工人是其子类有工资
ID如何定义呢?
ID最好可以自己生成,最好的方式是采用下面的编码方式:
· 标记 + 时间戳 + 三位随机数
· 例如:2009年3月22 20:10:10.345
· 学生的标记为s,工人的标记为w
· 生成的ID号: 学生 --> s20090322201010345023
                           工人 --> w20090322201010345023
因为现在的程序要满足文件和数据库的操作标准,所以此处应该定义出一个公共的标准 —— 接口
查询信息的时候可以进行排序操作,可以使用Comparable接口完成。
整个代码中牵扯到数据层的操作
· 数据层就是指真实的数据操作 --> CRUD。
· 最终结果操作的肯定是一个人(人为工人和学生)
应该进行分开,一个是全部的学生管理,一个是全部的工人管理。
数据层操作标准定义完成之后,有两种选择,一种是直接使用子类实现,但是以后的修改不是很方便,
所以此处最好使用代理设计的思路完成,做一个中间层。
代码关系:
Main --> Menu --> PersonOperate --> DAO
因为程序即要求使用文件保存,又要求使用数据库保存,所以此处可以设计出一个工厂,通过此工厂进行DAO的操作子类实例取得。

 

 

一些经验:

报错:

Exception in thread "main" java.lang.NullPointerException
at org.shp.dao.InputData.getInt(InputData.java:20)
at org.shp.dao.Menu.showMain(Menu.java:23)
at org.shp.dao.Menu. <init>(Menu.java:12)
at org.shp.dao.Main.main(Main.java:5)

原因:InputData 中str 没有初始化,因为 String str = null,

所以对str 进行操作时报错,str = this.InputData() ,就好啦!

 

具体代码可以看:http://bbs.51cto.com/thread-561277-1.html

或者可以去:http://shenghuiping2001.download.csdn.net/ 下载。

 

在开发过程中遇到问题,可以去http://www.myexception.cn/ 看看有没有类似的问题,别人的解决方法是什么。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值