jsp+Javabean+servlet实现添加删除

注意:添加中前台有多个表单以及有上传表单

dao:
// 保存
	public int addProduct(Product product) throws SQLException {
		//sql进行添加
		String sql = "insert into Product values(?,?,?,?,?,?,?,?,?,?)";
		//用数据库连接池初始化runner对象
		QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
		// 返回值 int代表影响的行数
		return runner.update(sql, product.getPid(), product.getPname(), product
				.getMarket_price(), product.getShop_price(), product
				.getPimage(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
				.format(product.getPdate()), product.getIs_hot(), product
				.getPdesc(), product.getPflag(), product.getCid());
	}

	// 删除数据库的记录
	public int deleteProduct(String pid) throws SQLException {
		//sql根据pid进行删除
		String sql = "delete from product where pid=?";
		//用数据库连接池初始化runner对象
		QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
		return runner.update(sql, pid);
	}
service:
//添加
	public boolean addCategory(Category category){
		category.setCid(CommonsUtils.getUUID());
		boolean b = false;
		try {
		b =	cd.addCategory(category)>0 ? true:false;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return b;
	}
	//删除
	public boolean deleteCategory(String cid){
		try {
		 return cd.deleteCategory(cid)>0?true:false;
		 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
servlet:
public void add(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException, FileUploadException,
			IllegalAccessException, InvocationTargetException {
		FileItemFactory fileItemFactory = new DiskFileItemFactory();
		ServletFileUpload sf = new ServletFileUpload(fileItemFactory);
		if (sf.isMultipartContent(request))// 判断表单enctype为否为mutipart-data
		{
			// 如果表单含有上传标签,那么getParamMap方法失效,
			// 因为前台input太多,所以我们要使用beanUtils快速封装,那么我们就需要自己封装Map了
			Map<String, String> paramsMap = new HashMap<String, String>();
			List<FileItem> itemList = sf.parseRequest(request);
			// 1.上传
			for (FileItem fileItem : itemList) {
				if (!fileItem.isFormField())// 判断是否为上传组件
				{
					// 1.1执行上传
					// 1.1.1获取服务器上传目录路径
					String path = getServletContext().getRealPath("/products");
					// 1.1.2上传
					InputStream is = fileItem.getInputStream();
					// getFieldName()获取表单标签name属性值
					// getName()获取文件名
					// getString()获取表单标签value值
					FileOutputStream fos = new FileOutputStream(new File(path,
							fileItem.getName()));
					IOUtils.copy(is, fos);
					// 清除临时文件
					fileItem.delete();
					is.close();
					fos.close();
					// 将pimage属性存入map
					paramsMap.put(fileItem.getFieldName(), "products/"
							+ fileItem.getName());
				} else// 普通组件
				{
					paramsMap.put(fileItem.getFieldName(),
							fileItem.getString("UTF-8"));
				}

			}
			// 2.封装product对象 保存到数据库里
			Product product = new Product();
			BeanUtils.populate(product, paramsMap);
			// 调用保存保存
			boolean result = ps.addProduct(product);
			
			if (result) {
				
				response.getWriter()
						.println(
								"<script>confirm('添加成功');location.href='/ShopStore/product?method=list';</script>");
			} else {
				response.getWriter()
						.println(
								"<script>confirm('添加失败');location.href='/ShopStore/admin/product/add.jsp;</script>");
			}
		}
	}

	public void delete(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String pid = request.getParameter("pid");
		// 获取欲删除的product对象
		Product product = ps.findProductByPid(pid);
		// 删除数据库记录
		boolean result = ps.deleteProduct(pid);
		// 删除服务器端图片
		String path = getServletContext().getRealPath("");
		File file = new File(path, product.getPimage());
		if (file.exists()) {// 判断文件是否存在
			file.delete();// 删除
		}
		if (result) {
			response.getWriter()
					.println(
							"<script>confirm('删除成功');location.href='/ShopStore/product?method=list';</script>");
		} else {
			response.getWriter()
					.println(
							"<script>confirm('删除失败');location.href='/ShopStore/product?method=list'</script>");
		}
	}
Thank you for reading

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值