小学期进行到后半阶段,我们开始按照的老师的要求做自己的项目,我这一次做的是库存管理。我从搭建环境开始,到具体的实现,算是圆满地完成了任务。
具体的步骤:
- 搭建环境
- 写配置文件
- 分层实现 (1)Bean :Java class和 xxx.hbm.xml
- (2)Dao :Dao接口和Dao实现
- (3)Service:service接口和service实现
- (4)Action:Action->service->Dao
而数据库的设计如下:
其实主要的功能是和前段时间老师带着我们做的那个客户信息管理的例子差不多,实现增删查改。然后因为我们这个小项目是库存信息管理,所以我在里面加了一个部分来获取系统时间,用户点击新增的时候就是作为入库,而那时候就是前段获取请求后调用action,在action里面的execute()代码如下,
public String execute() throws Exception {
// TODO Auto-generated method stub
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String stocktime = format.format(date);
item.setStocktime(stocktime);
this.saveService.saveItem(item);
return SUCCESS;
}
起初我的这一段代码犯了两个错误:
第一个错误是加错了地方,放在了com.crm.bean下的Item,点击查询的时候,所有记录的入库时间都会更新为当前系统时间,
public void setStocktime(String stocktime) {
Date date = new Date();
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
stocktime = format.format(date);
this.stocktime = stocktime;
}
后来仔细一看,如果加在这里的话,所有的action都会调用的setStocktime(),也就造成了所有记录都更新成了当前系统时间的错误。
第二个错误:
我想到了应该是加在具体的action下,在这里是ItemSaveAction,我的确是加载了execute()里,但是我把 this.saveService.saveItem(item);
放在了最前面,导致我们第一次入库的时候会没有生成入库时间,而后面的入库时间都是前一次的操作时间。
其他的功能部分其实和上一个项目类似,就不赘述了。
说一下这一次小学期的心得吧,其实在这之前,我也只是听别人说起java的三大框架而已,不知道是什么,在短暂的接触以后,只能说是初步的入门而已,只是知其然而已,想要知其所以然还需要自己课后去研究,但是java的三大框架的确用起来十分的便捷,即使我们现在的项目还是小项目而已,但就举数据库那一部分来说,有了Hibernate框架,不用写很多的sql语句,它都已经封装好了,能够很方便地去访问数据库。但是目前我们接触的都是一些浅层的内容,深层的理论也不是很懂,后面我会去深入学习。