一 前台界面:java
前台界面须要显示一个商品类型管理的按钮选项,此项目中是在menuBar中添加的按钮链接git
点击商品类型管理的按钮进入一个列表界面,显示数据库中已经存在的商品类型列表,本页面的功能有编辑,删除,追加和取消。web
点击编辑按钮进入对商品类型的编辑,输入内容为空或添加商品类型与已有类型相同时提示错误信息。spring
点击追加按钮进入追加页面添加时,一样,输入内容为空或添加商品类型与已有类型相同时提示错误信息。
sql
二 后台功能实现:数据库
数据库中添加一个商品类型的表commodity_type,并添加三个元素分别为ID,类型名和备注:commodity_type_id,commodity_type_name,commodity_type_note;apache
在CommodityTypeForm .java中定义一下这三个变量,并使用标签@Data直接引用Get,Set方法,不用再写方法体。为须要进行vailudation的属性添加相应的标签好比这里的Name须要设置为不能为空或者不能与数据库中已有的数据重复:session
@NotEmpty(field="商品类型", message="{errors.required}")app
@Digits ( message="{errors.similar}",fraction=0,integer=0)ui
private String commodityTypeName;
3.为每一个页面中的按钮编写实现功能的代码,主要涉及到CommodityTypeController.java(主要涉及各页面的跳转和一些功能),CommodityTypeService.java(都是调用存放数据库中数据的一些方法),CommodityTypeSqlMap.java(数据库中所要进行的一些操做,如查询,插入,更新数据的语句) 详细代码以下
CommodityTypeForm .java
package cn.agriculture.web.form; import cn.agriculture.common.validator.constraints.NotEmpty; import lombok.Data; @Data ---------------引用一个数据标签,能够不用写GET,SET方法 public class CommodityTypeForm { private String commodityTypeId; @NotEmpty(field="商品类型", message="{errors.required}") private String commodityTypeName; private String commodityTypeNote; private String updateTime; }
CommodityTypeService.java
package cn.agriculture.web.service; import java.util.List; import jp.terasoluna.fw.dao.QueryDAO; import jp.terasoluna.fw.dao.UpdateDAO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.agriculture.web.form.CommodityTypeForm; @Service public class CommodityTypeService { @Autowired QueryDAO queryDao; @Autowired UpdateDAO updateDao; public List<CommodityTypeForm> searchCommodityTypeList() { List<CommodityTypeForm> result = queryDao.executeForObjectList("Commodity_type.selectCommodityTypeList", null); return result; } public CommodityTypeForm searchCommodityType(CommodityTypeForm frm) { CommodityTypeForm result = queryDao.executeForObject("Commodity_type.selectCommodityType", frm, CommodityTypeForm.class); return result; } public CommodityTypeForm searchCommodityTypeName(CommodityTypeForm frm) { CommodityTypeForm result = queryDao.executeForObject("Commodity_type.selectCommodityTypeName", frm, CommodityTypeForm.class); return result; } public boolean addCommodityType(CommodityTypeForm frm) { // Integer sequee = queryDao.executeForObject("Commodity_type.getSeq", null, Integer.class); String commoditytypeId = frm.getUpdateTime().substring(0, 4) + String.format("%011d", sequee); frm.setCommodityTypeId(commoditytypeId); int result = updateDao.execute("Commodity_type.addCommodityType", frm); if (result == 1) { return true; } return false; } public boolean editCommodityType(CommodityTypeForm frm) { int result = updateDao.execute("Commodity_type.updateCommodityType", frm); if (result == 1) { return true; } return false; } public boolean delCommodityType(CommodityTypeForm frm) { int result = updateDao.execute("Commodity_type.delCommodityType", frm); if (result == 1) { return true; } return false; } }
ItemListComponent.java
public class ItemListComponent { @Autowired QueryDAO queryDao; //设置下拉列表项----下拉列表中的标签为Label,显示的值为从列表中select出的数据,做为value值 public List<Item> getCommodityTypeList() { return queryDao.executeForObjectList("Common.selectCommodityType", null); } public String getCommodityTypeLabel(String commoditytypeValue) { return queryDao.executeForObject("Common.selectCommodityTypeLabel", commoditytypeValue,String.class); } }
CommodityTypeSqlMap.java
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <!-- SqlMap定義 --> <sqlMap namespace="Commodity_type"> <select id="selectCommodityTypeList" parameterClass="cn.agriculture.web.form.CommodityTypeForm" resultClass="cn.agriculture.web.form.CommodityTypeForm"> SELECT commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, commodity_type.commodity_type_note as commodityTypeNote FROM commodity_type </select> <select id="selectCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm" resultClass="cn.agriculture.web.form.CommodityTypeForm"> SELECT commodity_type.commodity_type_id as commodityTypeId, commodity_type.commodity_type_name as commodityTypeName, commodity_type.commodity_type_note as commodityTypeNote FROM commodity_type WHERE commodity_type.commodity_type_id = #commodityTypeId# </select> <!-- 设定 commodityTypeId 自增1 --> <select id="getSeq" resultClass="java.lang.Integer"> SELECT _nextval('commodityTypeId') </select> <insert id="addCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> INSERT INTO commodity_type(commodity_type_id,commodity_type_name,commodity_type_note) VALUES(#commodityTypeId#, #commodityTypeName#, #commodityTypeNote#) *********//(检验输入内容是否已存在数据库中,不存在时能够插入到数据库中????)********* WHERE no exists (select * from commodity_type where commodity_type_name=commodity_type_name) </insert> <update id="updateCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> UPDATE commodity_type SET commodity_type_name= #commodityTypeName#, commodity_type_note= #commodityTypeNote# WHERE commodity_type_id = #commodityTypeId# </update> <select id="selectCommodityTypeName"parameterClass="cn.agriculture.web.form.CommodityTypeForm"> SELECT commodity_type.commodity_type_name as commodityTypeName FROM commodity_type </select> <delete id="delCommodityType" parameterClass="cn.agriculture.web.form.CommodityTypeForm"> DELETE FROM commodity_type WHERE commodity_type_id = #commodityTypeId# </delete> </sqlMap>
CommodityTypeController.java
package cn.agriculture.web.controller; @Slf4j @Controller("CommodityTypeController") @RequestMapping("/") @PropertySource("classpath:system.properties") public class CommodityTypeController { @Autowired CommodityTypeService commodityTypeService; @Autowired ItemListComponent itemListComponent; @Autowired private Environment env; //商品类型列表初始化 @RequestMapping(value = "initCommodityType", method = RequestMethod.GET) public String initCommodityType(Model model) { log.info("商品类型列表初始化"); model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "initAddCommodityType", method = RequestMethod.GET) public String initAddCommodityType(Model model) { log.info("追加商品列表初始化"); CommodityTypeForm commodityTypeForm = new CommodityTypeForm(); model.addAttribute("commodityTypeForm", commodityTypeForm); return "manager/commodityType/addCommodityType"; } @RequestMapping(value = "addCommodityType", method = RequestMethod.POST) public String executeAddCommodityType(Model model, HttpSession session, @Valid @ModelAttribute("commodityTypeForm") CommodityTypeForm commodityTypeForm, BindingResult results) throws SQLException, IOException { log.info("添加商品类型信息"); if(results.hasErrors()){ model.addAttribute("commodityTypeForm", commodityTypeForm); return "manager/commodityType/addCommodityType";} **************//验证用户在线,若超时让用户从新登陆*************** //UVO uvo = (UVO)session.getAttribute("UVO"); //commodityTypeForm.setUpdateUser(uvo.getUserName()); *************//设置时间更新用于以时间刷新ID ???? Date date = new Date(); SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); commodityTypeForm.setUpdateTime(dateformat.format(date)); boolean result = commodityTypeService.addCommodityType(commodityTypeForm); if(!result) { throw new SQLException("商品类型添加失败!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "initEditCommodityType", method = RequestMethod.GET) public String initEditCommodityType(Model model, CommodityTypeForm commodityTypeForm) { log.info("修改商品类型初始化"); CommodityTypeForm result = commodityTypeService.searchCommodityType(commodityTypeForm); model.addAttribute("commodityTypeForm", result); return "manager/commodityType/editCommodityType"; } @RequestMapping(value = "editCommodityType", method = RequestMethod.POST) public String executeEditCommodityType(Model model,HttpSession session, @Valid @ModelAttribute("commodityTypeForm") CommodityTypeForm commodityTypeForm, BindingResult results) throws SQLException, IOException { log.info("修改商品类型"); if(results.hasErrors()){ return "manager/commodityType/editCommodityType";} //UVO uvo = (UVO)session.getAttribute("UVO"); //commodityTypeForm.setUpdateUser(uvo.getUserName()); Date date = new Date(); SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); commodityTypeForm.setUpdateTime(dateformat.format(date)); boolean result = commodityTypeService.selectCommodityType(commodityTypeForm); if(!result) { throw new SQLException("商品类型更新失败!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } @RequestMapping(value = "delCommodityType", method = RequestMethod.GET) public String executeDelCommodityType(Model model, CommodityTypeForm commodityTypeForm) throws SQLException { log.info("删除商品信息"); boolean result = commodityTypeService.delCommodityType(commodityTypeForm); if(!result) { throw new SQLException("商品类型删除失败!"); } model.addAttribute("list", commodityTypeService.searchCommodityTypeList()); return "manager/commodityType/commodityTypeList"; } }
SqlMapConfig.xml (此文件主要管理全部的SqlMap文件)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <!-- SqlMapConfig定義 --> <sqlMapConfig> <settings useStatementNamespaces="true" /> <typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler" /> <sqlMap resource="CommodityTypeSqlMap.xml" />