柚子的JavaWeb笔记

实现数据的新增

Dao层 接口

package com.ishopn.dao;
import java.util.List;
import com.ishopn.model.Commodity;
//接口  定义增删查的方法
public interface CommodityDao {
	List<Commodity> getCommodityList(); // 查询方法 获取commodity的集合
	int istCommodity(Commodity c);// 插入新的commodity数据
	int delCommodityById(String c_id);//删除commodity的数据
}

Dao层 实现类

//CommodityDao接口的实现类
package com.ishopn.dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.ishopn.dao.CommodityDao;
import com.ishopn.model.Commodity;
import com.ishopn.util.DBHelper;

public class CommodityDaoimpl implements CommodityDao {

	@Override //重写查询方法
	public List<Commodity> getCommodityList() {
	//定义一个List集合来保存数据库中的commodity数据
		List<Commodity> commoditys = new ArrayList<Commodity>();
		try {
			//获取数据库连接
			Connection conn = DBHelper.getConnection();
			String sql = "select * from commodity";
			ResultSet rs = DBHelper.execteQuery(conn, sql, null);
			while(rs.next()) {
				//实例化一个commodity对象,将数据库中的数据以对象保存
				Commodity c = new Commodity();
				c.setC_id(rs.getString(1)) ;
				c.setC_name(rs.getString(2));
				c.setC_madein(rs.getString(3));
				c.setC_type(rs.getString(4));
				c.setC_inprice(rs.getInt(5));
				c.setC_outprice(rs.getInt(6));
				c.setC_num(rs.getInt(7));
				c.setCt(new CommoditytypeDaoimpl().getCommoditytypeById(rs.getString("c_type")));
				commoditys.add(c);
			}
			//关闭数据库连接
			DBHelper.closeConnection(conn);
		}catch(Exception e) {
			e.printStackTrace();
		}
		//将得到的数据集合返回
		return commoditys;
	}

	@Override//重写的新增数据方法  需要新增的数据的那个对象
	//该对象中保存了commodity的所有数据,用于插入到数据库
	public int istCommodity(Commodity c) {
		//初始化 数据库中的受影响行数
		int line = 0;
		try {
		//获取数据库连接
			Connection conn = DBHelper.getConnection();
			//新增的sql语句
			String sql = "insert into commodity (c_id,c_name,c_madein,c_type,c_inprice,c_outprice,c_num) values(?,?,?,?,?,?,?)";
			List param = new ArrayList();
			param.add(c.getC_id());
			param.add(c.getC_name());
			param.add(c.getC_madein());
			param.add(c.getC_type());
			param.add(c.getC_inprice());
			param.add(c.getC_outprice());
			param.add(c.getC_num());
			line = DBHelper.executeUpdate(conn, sql, param);
			//关闭数据库连接
			DBHelper.closeConnection(conn);
		}catch(Exception e) {
			e.printStackTrace();
		}
		//将数据库中的受影响行数返回
		return line;
	}

	@Override//重写的删除数据方法  需要一个呗删除数据的id
	public int delCommodityById(String c_id) {
		int line = 0;
		try {
			//获取数据库连接
			Connection conn = DBHelper.getConnection();
			//删除的sql语句
			String sql = "delete from commodity where c_id=?";
			List param = new ArrayList();
			param.add(c_id);
			line = DBHelper.executeUpdate(conn, sql, param);
			//关闭数据库连接
			DBHelper.closeConnection(conn);
		}catch(Exception e){
			e.printStackTrace();
		}
		//将执行sql语句后的受影响行数返回
		return line;
	}	
}

Controller层

package com.ishopn.controller;

import java.util.List;

import com.ishopn.dao.CommodityDao;
import com.ishopn.dao.impl.CommodityDaoimpl;
import com.ishopn.model.Commodity;
//处理业务逻辑
public class CommodityController {
	private CommodityDao commodityDao = null;
	//在构造方法中将Dao层对象实例化  增加代码复用
	public CommodityController() {
		commodityDao = new CommodityDaoimpl();
	}
	//查询方法   使用实例化的Dao层对象去调用方法,获得返回 数据的List集合
	public List<Commodity> getCommodityList() {
		return commodityDao.getCommodityList();
	}
	//新增方法  使用实例化的Dao层对象调用新增数据的方法  获得返回的受影响行数
	//由于该方法需要一个Commodity的对象,所以需要new一个,
	//然后使用前端获取到的用户输入的字段 实例化Commodity对象
	//返回受影响行数
	public int istCommodity(String c_name,String c_madein,String c_type,String c_inprice,String c_outprice,String c_num) {
		Commodity c = new Commodity(System.currentTimeMillis()+"",c_name,c_madein,c_type,new Integer(c_inprice),new Integer(c_outprice),new Integer(c_num));
		return commodityDao.istCommodity(c);
	}
	//删除方法  使用实例化的Dao层对象调用delCommodityById方法
	//该方法的参数为前端获得的要删除的数据的id
	public int delCommodityById(String c_id) {
		return commodityDao.delCommodityById(c_id);
	}
}

Service层 新增

package com.ishopn.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.ishopn.controller.CommodityController;
import com.ishopn.controller.CommoditytypeController;
import com.ishopn.model.Commodity;
import com.ishopn.model.Commoditytype;

//创建一个普通类去继承HttpServlet类 变成Servlet
public class CommodityServlet extends HttpServlet {
	//重写HttpSerlet的两个方法  可获得request和respon对象
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置编码格式
		req.setCharacterEncoding("utf-8");
		resp.setCharacterEncoding("utf-8");
		
		//通过前端获得数据的信息
		String c_name = req.getParameter("c_name");
		String c_madein = req.getParameter("c_madein");
		String c_type = req.getParameter("c_type");
		String c_inprice = req.getParameter("c_inprice");
		String c_outprice = req.getParameter("c_outprice");
		String c_num = req.getParameter("c_num");
		//调用Controller层的新增方法,将从起那段获得的参数传入
		int line = new CommodityController().istCommodity(c_name, c_madein, c_type, c_inprice, c_outprice, c_num);
		//判断受影响行数  大于0 说明数据库中数据新增成功
		if(line>0) {
			HttpSession session = req.getSession();
			//该List用于显示所有商品的信息
			List<Commodity> cList = new CommodityController().getCommodityList();
			session.setAttribute("cList", cList);
			
			List<Commoditytype> ctList = new CommoditytypeController().getCommodityList();
			session.setAttribute("ctList", ctList);
			//新增之后 重新跳转到当前页面  实现刷新功能
			resp.sendRedirect("/web06/welcome.jsp");
		}else {
			//数据插入失败
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req,resp);
	}
		
}

Service层 删除

package com.ishopn.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.ishopn.controller.CommodityController;
import com.ishopn.controller.CommoditytypeController;
import com.ishopn.model.Commodity;
import com.ishopn.model.Commoditytype;
//创建删除类 继承HttpServlet 变为Servlet
public class delCommodityByIdServlet extends HttpServlet {
	//重写HttpServlet的两个方法
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置编码格式
		req.setCharacterEncoding("utf-8");
		resp.setCharacterEncoding("utf-8");
		//从前端获得要删除的商品的id
		String c_id = req.getParameter("c_id");
		//实例化Controller层的对象
		CommodityController c = new CommodityController();
		//调用删除方法
		int line = c.delCommodityById(c_id);
		HttpSession session = req.getSession();
		//判断数据库中的受影响行数  大于0则表示删除成功
		if(line>0) {
			//获取商品数据的List集合
			List<Commodity> cList = new CommodityController().getCommodityList();
			session.setAttribute("cList", cList);
			
			List<Commoditytype> ctList = new CommoditytypeController().getCommodityList();
			session.setAttribute("ctList", ctList);
			//重新跳转到当前页面  达到刷新的效果
			resp.sendRedirect("/web06/welcome.jsp");
		}else {
			System.out.println("删除失败!");
		}	
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req,resp);
	}	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值