首先要完成的是基本信息中的生产厂家功能。
生产厂家业务
功能:
在货物模块和附近模块,它们都有个生产厂家,讲生产厂家信息提出,成为一个单独的表。
《需求说明书》
生产厂家表 FACTORY_C(_C业务后缀)
序号 |
名称 |
代码 |
是否主键 |
类型(长度) |
说明 |
1. |
编号 |
FACTORY_ID |
是 |
VARCHAR2(40) |
UUID |
2. |
全称 |
FULL_NAME |
否 |
VARCHAR2(200) |
对应客户比较模糊,翻倍2到4倍 |
3. |
简称 |
FACTORY_NAME |
否 |
VARCHAR2(50) |
|
4. |
联系人 |
CONTACTS |
否 |
VARCHAR2(30) |
人名20/30 |
5. |
电话 |
PHONE |
否 |
VARCHAR2(20) |
|
6. |
手机 |
MOBILE |
否 |
VARCHAR2(20) |
|
7. |
传真 |
FAX |
否 |
VARCHAR220) |
|
8. |
验货员 |
INSPECTOR |
否 |
VARCHAR2(30) |
|
9. |
排序号 |
ORDER_NO |
否 |
INT |
|
10. |
备注 |
CNOTE |
否 |
VARCHAR2(500) |
如果感觉它可能和关键字冲突,给它加个C前缀 |
11. |
创建人 |
CREATE_BY |
否 |
VARCHAR2(40) |
权限字段,登陆人ID |
12. |
创建部门 |
CREATE_DEPT |
否 |
VARCHAR2(40) |
登陆人所在部门的ID |
13. |
创建时间 |
CREATE_TIME |
否 |
TIMESTAMP |
|
注意:在这里我选用的id类型为varchar2 类型,
INT/LONG 都是一般表示自增,根据业务记录数来决定
STRING UUID,业务自己定义的规则xxyyzz,每两位为一层,省市县,部门
接着是数据库建模
这里我使用PowerDesigner进行数据库表的设计
关于这个软件的使用,将在相对应的文章中进行详细描写,这里不再进行赘述。
接着就是创建相应的实体类Factory
package com.wakev.xx.domain;
public class Factory {
private String id; //主键映射时,都映射成id,跟数据库表的不同factory_id
private String fullName;
private String factoryName;
private String contacts;
private String phone;
private String mobile;
private String fax;
private String inspector;
private String cnote;
private Integer orderNo;
private String createBy;
private String createDept;
private java.util.Date createTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getFactoryName() {
return factoryName;
}
public void setFactoryName(String factoryName) {
this.factoryName = factoryName;
}
public String getContacts() {
return contacts;
}
public void setContacts(String contacts) {
this.contacts = contacts;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getFax() {
return fax;
}
public void setFax(String fax) {
this.fax = fax;
}
public String getInspector() {
return inspector;
}
public void setInspector(String inspector) {
this.inspector = inspector;
}
public String getCnote() {
return cnote;
}
public void setCnote(String cnote) {
this.cnote = cnote;
}
public Integer getOrderNo() {
return orderNo;
}
public void setOrderNo(Integer orderNo) {
this.orderNo = orderNo;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getCreateDept() {
return createDept;
}
public void setCreateDept(String createDept) {
this.createDept = createDept;
}
public java.util.Date getCreateTime() {
return createTime;
}
public void setCreateTime(java.util.Date createTime) {
this.createTime = createTime;
}
}
接着开始完善Dao层。创建FactoryDao并继承BaseDao接口
package com.wakev.xx.dao;
import com.wakev.xx.domain.Factory;
public interface FactoryDao extends BaseDao {
}
实现类FactoryDaoImpl继承BaseDaoImpl并实现FactoryDao接口
package com.wakev.xx.dao.impl;
import org.springframework.stereotype.Repository;
import com.wakev.xx.dao.FactoryDao;
import com.wakev.xx.domain.Factory;
@Repository
public class FactoryDaoImpl extends BaseDaoImpl implements FactoryDao {
//利用默认构造方法初始化命名空间
public FactoryDaoImpl() {
super.setNs("com.wakev.xx.mapper.FactoryMapper");
}
}
接着是Service层
首先FactoryService接口
package com.wakev.xx.service;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.wakev.xx.domain.Factory;
import com.wakev.xx.pagination.Page;
public interface FactoryService {
public List findPage(Page page); //分页查询
public List find(Map paraMap); //带条件查询,条件可以为null,既没有条件;返回list对象集合
public Factory get(Serializable id); //只查询一个,常用于修改
public void insert(Factory entity); //插入,用实体作为参数
public void update(Factory entity); //修改,用实体作为参数
public void deleteById(Serializable id); //按id删除,删除一条;支持整数型和字符串类型ID
public void delete(Serializable[] ids); //批量删除;支持整数型和字符串类型ID
}
package com.wakev.xx.service.impl;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.wakev.xx.dao.FactoryDao;
import com.wakev.xx.pagination.Page;
import com.wakev.xx.service.FactoryService;
@Service
public class FactoryServiceImpl implements FactoryService {
@Resource
FactoryDao factoryDao;
@Override
public List findPage(Page page) {
// TODO Auto-generated method stub
return null;
}
@Override
public List find(Map paraMap) {
return factoryDao.find(paraMap);
}
@Override
public com.wakev.xx.domain.Factory get(Serializable id) {
return factoryDao.get(id);
}
@Override
public void insert(com.wakev.xx.domain.Factory entity) {
}
@Overridepublic
void update(com.wakev.xx.domain.Factory entity) {
return null;
}@Overridepublic
void deleteById(Serializable id) {
return null;
}@Overridepublic void delete(Serializable[] ids) {
return null;
}
}
package com.wakev.xx.controller.basicinfo.factory;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.wakev.xx.controller.BaseController;
import com.wakev.xx.domain.Factory;
import com.wakev.xx.service.FactoryService;
@Controller
public class FactoryController extends BaseController {
@Resource
FactoryService factoryService;
//查询
@RequestMapping("/basicinfo/factory/list.action")
public String list(Model model){
List dataList = factoryService.find(null);
model.addAttribute("dataList", dataList);
return "/basicinfo/factory/jFactoryList.jsp";
}}
接着创建相应的页面jsp
在WEB-INF---> pages--->basicinfo--->factory--->jFactoryList.jsp
修改list部分
序号
厂家全称
缩写
联系人
电话
手机
传真
验货员
${status.index+1}
${o.fullName}
${o.factoryName}
${o.contacts}
${o.phone}
${o.mobile}
${o.fax}
${o.inspector}
这里简单提一下整个框架的执行顺序:
首先是在url 输入
1)http://localhost:8080/xx后执行
http://localhost/xx/index.jsp
2)在Jsp中利用js跳转
window.location.href ="home.action"; //javascript页面跳转
3) 在homeController中跳转,转入登陆页面
@Controller
public class HomeController {
//系统首页模块
@RequestMapping(value={"/home.action"}) //配合web下/
public String login(){
return "/index.jsp"; //首页,删除根目录下index.jsp,否则上面url将被拦截进不来
}
4) 在pages/index.jsp中利用按钮提交,fmain.action
@RequestMapping(value="/fmain.action")
public String fmain(){
return "/home/fmain.jsp";
接下来完成Factory的insert插入功能
首先在FactoryMapper中添加
insert into FACTORY_C
(FACTORY_ID,FULL_NAME,FACTORY_NAME,CONTACTS,PHONE,MOBILE,FAX,INSPECTOR,CNOTE,ORDER_NO,CREATE_BY,CREATE_DEPT,CREATE_TIME)
values
(
#{id,jdbcType=VARCHAR},
#{fullName,jdbcType=VARCHAR},
#{factoryName,jdbcType=VARCHAR},
#{contacts,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR},
#{mobile,jdbcType=VARCHAR},
#{fax,jdbcType=VARCHAR},
#{inspector,jdbcType=VARCHAR},
#{cnote,jdbcType=VARCHAR},
#{orderNo,jdbcType=INTEGER},
#{createBy,jdbcType=VARCHAR},
#{createDept,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}
)
由于dao层跟service层都已经实现了这个方法,所以现在只要在Controller层进行完善
在FactoryController中添加新增功能
//转向新增页面
@RequestMapping("/basicinfo/factory/tocreate.action")
public String tocreate(){
return "/basicinfo/factory/jFactoryCreate.jsp";
}
//新增保存
@RequestMapping("/basicinfo/factory/insert.action")
public String insert(Factory factory){
factoryService.insert(factory);
return "redirect:/basicinfo/factory/list.action";
}
创建对应的JfactoryCreate.jsp页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
wakev商务管理系统