设为首页 收藏本站
查看: 1171|回复: 0

[经验分享] Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【五】

[复制链接]

尚未签到

发表于 2016-11-28 09:02:47 | 显示全部楼层 |阅读模式
第五篇、各层的结合运用
====================================================================
本人比较懒,所以里面只写了一个jsp页面,测试的时候用来改改form的action,然后看效果。但是java类里面的方法我还是写完了。
production.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head><title>添加产品</title> </head>
<body>
<form:form action="addProduction.do" commandName="production">
<table>
<tr>
<td>产品ID</td>
<td><input type="text" name="productionid"/></td>
</tr>
<tr>
<td>产品名称</td>
<td><input type="text" name="productionname" /></td>
</tr>
<tr>
<td>产品价格</td>
<td><input type="text" name="price" /></td>
</tr>
<tr>
<td>产品规格</td>
<td><input type="text" name="detail" /></td>
</tr>
<tr>
<td colspan="3">
<input type="submit" value="DELETE RECORD" />
</td>
</tr>
</table>
</form:form>
</body>
</html>

用了一些spring的标签,spring:text没用,总是报错误,网上也没有一个合理的答案,我猜可能还是需要form之类的东西吧,等我研究我再补上。
======================空开 for spring 标签问题开始======================
空开 for spring 标签问题
======================空开 for spring 标签问题结束======================

Controller
package com.qdcl.mart.business.web;

import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.qdcl.mart.business.domain.Production;
import com.qdcl.mart.business.service.IProductionService;
@Controller
@RequestMapping("/")
public class ProductionController {
@Autowired
private IProductionService productionService;
@RequestMapping(value="/production",method=RequestMethod.GET)
public String getProduct(Model model){
System.out.println("fuck all");
productionService.getProductionByName("aaa");
model.addAttribute("production", productionService.getProductionByName("bbb"));
return "production";
}
@RequestMapping(value="/addProduction")
public String addProduction(Production production){
productionService.saveProduction(production);
return "production";
}
@RequestMapping(value="/editProduction")
public String editProduction(Model model){
Production production =  new Production();
productionService.updateProduction(production);

return "production";
}
@RequestMapping(value="/deleteProduction")
public String deleteProduction(String productionid){
List<String> listIds = new ArrayList<String>();
listIds.add(productionid);
productionService.deleteProduction(listIds);

return "production";
}
}

这里面我一直不明白的是,当调用后台处理的方法,直接把参数写到xxx方法中即可,但是用private Production production;然后getter/setter的方法居然是null。费解,因为还没深入研究mvc的种种。所以只好又是一段空白。
Service 以及 ServiceImpl

package com.qdcl.mart.business.service;

import java.util.List;
import com.qdcl.mart.business.domain.Production;

public interface IProductionService {
public Production getProductionByName(String pName);
public boolean saveProduction(Production production);
public boolean updateProduction(Production production);
public boolean deleteProduction(List<String> listIds);
}



package com.qdcl.mart.business.service.impl;
import java.math.BigDecimal;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.qdcl.mart.business.domain.Production;
import com.qdcl.mart.business.persistence.ProductionMapper;
import com.qdcl.mart.business.service.IProductionService;
@Service
public class ProductionServiceImpl implements IProductionService {
@Autowired
private ProductionMapper productionMapper;
/**
*
* @param pName
* @return
*/
public Production getProductionByName(String pName){
Production production = productionMapper.selectProductionByName("bbb");
return production;
}
/**
* 返回整数
*/
public boolean saveProduction(Production production) {
//productionMapper.insertProduction(production);
//production.setProductionid("10000001");
//production.setPrice(new BigDecimal(1.0));
//production.setProductionname("笔记本");
//production.setDetail("IBM Thinkpad R400");
int success = productionMapper.insertProduction(production);
return success > 0;
}
/**
* 更新
*/
public boolean updateProduction(Production production) {
//production.setProductionid("10000001");
//production.setPrice(new BigDecimal(1.0));
//production.setProductionname("笔记本");
//production.setDetail("IBM Thinkpad R400");
int success = productionMapper.updateProduction(production);
return success > 0;
}
/**
* 删除
*/
public boolean deleteProduction(List<String> listIds) {
int success = 0;
for(int i =0; i < listIds.size(); i++){
success += productionMapper.deleteProduction(listIds.get(i));
}
return success > 0;
}
}


Mapper类

package com.qdcl.mart.business.persistence;

import com.qdcl.mart.business.domain.Production;
public interface ProductionMapper {
/**
* 检索一个产品
* @param pName
*/
public Production selectProductionByName(String pName);
/**
* 插入产品
* @param p
*/
public int insertProduction(Production p);
/**
*
* @param p
* @return
*/
public int updateProduction(Production p);
/**
*
* @param ids
* @return
*/
public int deleteProduction(String id);
}

Domain类,看到这个类就知道我的表结构了,太简单,sql语句就不贴了。

package com.qdcl.mart.business.domain;
import java.math.BigDecimal;
public class Production {
/**
* 产品ID
*/
private String productionid;
/**
* 产品名称
*/
private String productionname;
/**
* 价格
*/
private BigDecimal price;
/**
* 明细
*/
private String detail;
public String getProductionid() {
return productionid;
}
public void setProductionid(String productionid) {
this.productionid = productionid;
}
public String getProductionname() {
return productionname;
}
public void setProductionname(String productionname) {
this.productionname = productionname;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
}


好了,至此这些东西都贴完了,一步一步走来,还有很多东西去学习。另外把代码也附上来,如果哪个跟我一样的刚刚入门,可以拿来研究研究。共同进步嘛,呵呵。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306421-1-1.html 上篇帖子: Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【二】 下篇帖子: mybatis: Mapped Statements collection does not contain value for...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表