`
PlayGod1984
  • 浏览: 160084 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【五】

阅读更多
第五篇、各层的结合运用
====================================================================
本人比较懒,所以里面只写了一个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;
	}
	
}



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

相关推荐

    maven+springmvc+redis+mybatis整合

    本项目以“maven+springmvc+redis+mybatis整合”为主题,旨在提供一个基于这些技术的集成框架,特别强调了利用Redis作为缓存来提升应用性能。下面将详细阐述这个框架中的各个组成部分以及它们之间的协作。 首先,...

    maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建

    本项目框架“maven+springMVC+mybatis+velocity+mysql+junit”提供了一种高效、灵活且可维护的解决方案。以下将详细讲解这些组件及其作用。 1. Maven: Maven是一个项目管理工具,用于构建、依赖管理和项目信息...

    maven+spring+springMVC+mybatis

    maven+spring+springMVC+mybatis 框架搭建 Maven 是一个优秀的项目管理和构建工具,Spring 是一个广泛使用的 Java 框架,SpringMVC 是基于 Spring 的一个 Web 框架,MyBatis 是一个持久层框架。在这个项目中,我们...

    Maven+springmvc+mybatis+easyui+mysql DEMO

    【Maven+SpringMVC+MyBatis+EasyUI+MySQL DEMO】是一个典型的Java Web项目集成示例,它展示了如何将这些流行的技术框架整合在一起,以构建一个功能丰富的Web应用。下面将详细介绍这些技术及其在项目中的作用。 1. ...

    Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境

    Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境

    Maven+SpringMVC+Mybatis Demo

    【Maven+SpringMVC+Mybatis Demo】是一个典型的Java Web开发示例,它结合了三个流行的开源框架:Maven、SpringMVC和Mybatis,用于构建高效、模块化的Web应用程序。下面将详细介绍这三个框架以及它们如何协同工作。 ...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    Spring、SpringMVC、Mybatis、Velocity和Maven是Java Web开发中常用的一组技术栈,它们各自在软件开发的不同层面发挥着重要作用。这个压缩包文件的标题和描述表明,它提供了一个集成这些技术的演示项目,下面我们将...

    maven+springMvc+MyBatis Demo

    【标题】"maven+springMvc+MyBatis Demo"是一个综合性的开发示例,它展示了如何将三个关键的Java Web开发框架——Maven、Spring MVC和MyBatis——集成到一个项目中。这个示例旨在帮助开发者理解如何在实际项目中有效...

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven实现的通用权限管理系统

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统。 Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统 Spring+SpringMVC+...

    maven+springmvc+spring+mybatis

    【标题】"maven+springmvc+spring+mybatis"是一个经典的Java Web开发技术栈,它结合了四个关键组件:Maven(项目管理工具),Spring MVC(MVC框架),Spring(核心框架)以及MyBatis(持久层框架)。这个组合在企业...

    maven+springmvc4+mybatis源代码

    【标题】"maven+springmvc4+mybatis源代码" 涵盖了现代Java Web开发中的三个关键组件:Maven、Spring MVC 4和MyBatis。这是一个典型的三层架构,包括构建管理、表现层和持久层。下面将详细阐述这三个技术及其在项目...

    SpringMvc+Spring+Mybatis+Maven+注解方式=整合

    "SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...

    eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库

    【标题】"eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库"是一个典型的Java Web开发项目,它涵盖了多个关键的技术栈,包括Eclipse IDE、Maven构建工具、Spring MVC作为MVC框架、Spring核心框架以及...

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)框架整合代码,需要注意的是Maven仓库不提供ojdbc.jar,需要手动添加,mvn install:install-file -DgroupId=...

    maven+spring MVC+Mybatis+jetty+mysql

    "maven+spring MVC+Mybatis+jetty+mysql" 的组合是常见的开发栈,它涵盖了项目管理、前端控制器、持久层操作、应用服务器以及数据库管理等多个层面。下面将详细介绍这些关键技术及其在实际应用中的作用。 1. Maven...

    Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统

    在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...

    整合Spring+SpringMVC+Mybatis+Maven+Mysql项目实例

    整合搭建Spring+SpringMVC+Mybatis+Maven+Mysql开发实例

    Maven+SpringMVC的入门级HelloWorld实例

    总结,Maven+SpringMVC的组合为Java Web开发提供了强大的支持,从项目管理到应用构建,再到复杂的业务逻辑处理,它们都扮演着不可或缺的角色。通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本...

    maven + springmvc + mybatis

    【标题】"maven + springmvc + mybatis" 指的是一个常见的Java Web开发框架组合,用于构建高效、模块化的应用程序。Maven是项目管理和综合工具,Spring MVC是Spring框架的一部分,用作Web应用的模型-视图-控制器...

Global site tag (gtag.js) - Google Analytics