jsp+Javabean+servlet实现添加删除

来源:互联网 发布:javassm开源项目源码 编辑:程序博客网 时间:2024/06/13 20:39

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

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 blocke.printStackTrace();}return b;}//删除public boolean deleteCategory(String cid){try { return cd.deleteCategory(cid)>0?true:false; } catch (SQLException e) {// TODO Auto-generated catch blocke.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属性存入mapparamsMap.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