一天一点做项目(1)

前天看到冯翔老师给的一道项目实践题:

我们准备建立一个产品检查系统,我们假设有一个产品仓库,仓库里面有很产品,但是这些产品中有一些事废品,因此需要找一些功能来把废品挑选出来。

每个工人开始工作的时候,自动从仓库中随机的挑选一些产品,然后对每个产品进行检查,从中找出废品并贴上标签,然后把产品提条的仓库中,仓库自动的核对工人的工作成果。

 

OK,以上就是需求了,下面我就用一般项目开发流程来进行开发撒。忘老师指正(大三学生,经验不够)。本次开发的原则是:体现项目开发整体过程。由于项目简单,不使用任何框架。

第一步:用例分析

业务需求功能:

    仓库物品管理模块

           工人输入一定数目的产品,将请求传给服务器,服务器随机选择指定书目的产品,返回给工人。

           进行人工检查后,将不合格产品信息提交给服务器,服务器进行审核,把错误信息返回给工人。

(只有以上两个,为简单起见,没有什么登陆注册)

第二步:数据库设计

画出ER图:很简单,只有一个实体——产品,主码:产品ID,其他属性:产品名,是否合格。

设计表:

CREATE TABLE storehouse
(  productId INT(5) PRIMARY KEY,
   productName CHAR(20),
   isAvaliable CHAR(1)
);

(这里为什么没有给isAvaliable设置为boolean,因为大部分数据库不支持此种类型,MySQL也是如此,我用一个CHAR代替,1表示合格,0表示不合格)

第三步:数据库访问层设计

首先是Bean的设计,由于只有一个实体,所以,只需设计一个Bean

Code:
  1. package com.jackyan.practice.store.bean;   
  2.   
  3. public class ProductBean {   
  4.     private int productId;   
  5.     private String productName;   
  6.     private char isAvaliable;   
  7.     public int getProductId() {   
  8.         return productId;   
  9.     }   
  10.     public void setProductId(int productId) {   
  11.         this.productId = productId;   
  12.     }   
  13.     public String getProductName() {   
  14.         return productName;   
  15.     }   
  16.     public void setProductName(String productName) {   
  17.         this.productName = productName;   
  18.     }   
  19.     public char getIsAvaliable() {   
  20.         return isAvaliable;   
  21.     }   
  22.     public void setIsAvaliable(char isAvaliable) {   
  23.         this.isAvaliable = isAvaliable;   
  24.     }   
  25.   
  26. }  

接下来,我们设计DAO

Code:
  1. package com.jackyan.practice.store.dao;   
  2.   
  3. import com.jackyan.practice.store.bean.ProductBean;   
  4.   
  5. public interface ProductBeanDao {   
  6.     public int[] selectAll();   
  7.     public ProductBean select(int productId);   
  8. }  

紧接着,针对MySQL数据库,我们来实现这个Dao

Code:
  1. package com.jackyan.practice.store.dao.mysql;   
  2.   
  3. import java.util.List;   
  4. import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;   
  5. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;   
  6. import com.jackyan.practice.store.bean.ProductBean;   
  7. import com.jackyan.practice.store.dao.ProductBeanDao;   
  8. import com.jackyan.practice.store.util.Utils;   
  9.   
  10. public class ProductBeanDaoMysqlImpl implements ProductBeanDao {   
  11.     private SimpleJdbcTemplate jdbcTemplate=Utils.getJdbcTemplate();   
  12.     @Override  
  13.     public int[] selectAll() {   
  14.         String sql="SELECT productId FROM storehouse";   
  15.         List<ProductBean> l=null;   
  16.         l=jdbcTemplate.query(sql,ParameterizedBeanPropertyRowMapper.newInstance(ProductBean.class));   
  17.         int[] tem=new int[l.size()];   
  18.         for(int i=0;i<tem.length;i++){   
  19.             tem[i]=l.get(i).getProductId();   
  20.         }   
  21.         return tem;   
  22.     }   
  23.     @Override  
  24.     public ProductBean select(int productId) {   
  25.         String sql="SELECT productId,productName,isAvaliable FROM storehouse WHERE productId=?";   
  26.         List<ProductBean> l=null;   
  27.         l=jdbcTemplate.query(sql, ParameterizedBeanPropertyRowMapper.newInstance(ProductBean.class), productId);   
  28.         return (l.size()>=1?l.get(0):null);   
  29.     }   
  30. }  

 

(我这里使用了spring框架对jdbc进行的封装)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值