Java项目:SSM电器商城系统

news2024/11/19 21:18:48

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为前后台,前台为普通用户登录,后台为管理员登录;

管理员角色包含以下功能:

管理员登录,销售统计,商品类目管理,用户管理,商品管理,订单管理,公告管理,留言管理等功能。

用户角色包含以下功能:

浏览所有商品,用户登录注册,查看商品,收藏商品,查看购物车,提交订单并查看,修改个人信息并查看,评价商品,查看公告,留言等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

5.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+jquery+bootstrap+echarts

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/shop 登录
用户账号/密码: user/123456

管理员账号/密码:admin/111111

运行截图

前台界面

后台界面

代码相关

地址管理控制器

@Controller
@RequestMapping("/address")
public class AddressController extends BaseController {
	
	
	/**
	 * 依赖注入 start dao/service/===
	 */
	@Autowired
	private AddressService addressService;
	
	// --------------------------------------- 华丽分割线 ------------------------------
	
	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAll")
	public String listAll(Address address, Model model, HttpServletRequest request, HttpServletResponse response){
		List<Address> listAll = addressService.listAll();
		model.addAttribute("list", listAll);
		return "address/address";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntity")
	public String listByEntity(Address address, Model model, HttpServletRequest request, HttpServletResponse response){
		List<Address> listAll = addressService.listAllByEntity(address);
		model.addAttribute("list", listAll);
		return "address/address";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMap")
	public String listByMap(Address address, Model model, HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(address.getName())){
	        	params.put("name", address.getName());
			}
	        if(!isEmpty(address.getPhone())){
	        	params.put("phone", address.getPhone());
			}
	        if(!isEmpty(address.getArea())){
	        	params.put("area", address.getArea());
			}
	        if(!isEmpty(address.getBm())){
	        	params.put("bm", address.getBm());
			}
	        if(!isEmpty(address.getIsUse())){
	        	params.put("isUse", address.getIsUse());
			}
	    List<Address> listAll = addressService.listByMap(params);
		model.addAttribute("list", listAll);
		return "address/address";
	}
	
	
	/*********************************查询列表【分页】***********************************************/
	
	
	
	/**
	 * 分页查询 返回list对象(通过对象)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByObj")
	public String findByObj(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<Address> pagers = addressService.findByEntity(address);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", address);
		return "address/address";
	}
	
	/**
	 * 分页查询 返回list对象(通过对By Sql)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findBySql")
	public String findBySql(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		String sql = "SELECT * FROM address WHERE 1=1 ";
        if(!isEmpty(address.getName())){
        	sql += " and name like '%"+address.getName()+"%'";
		}
        if(!isEmpty(address.getPhone())){
        	sql += " and phone like '%"+address.getPhone()+"%'";
		}
        if(!isEmpty(address.getArea())){
        	sql += " and area like '%"+address.getArea()+"%'";
		}
        if(!isEmpty(address.getBm())){
        	sql += " and bm like '%"+address.getBm()+"%'";
		}
        if(!isEmpty(address.getIsUse())){
        	sql += " and isUse like '%"+address.getIsUse()+"%'";
		}
       sql += " ORDER BY ID DESC ";
		Pager<Address> pagers = addressService.findBySqlRerturnEntity(sql);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", address);
		return "address/address";
	}
	
	
	
	@RequestMapping(value = "/my")
	public String my(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Object attribute = request.getSession().getAttribute("userId");
		if (attribute == null){
			return "redirect:/login/uLogin";
		}
		JSONObject js = new JSONObject();
		Integer userId = Integer.valueOf(attribute.toString());
		String sql = "SELECT * FROM address WHERE 1=1 and userId = "+userId;
        if(!isEmpty(address.getName())){
        	sql += " and name like '%"+address.getName()+"%'";
		}
        if(!isEmpty(address.getPhone())){
        	sql += " and phone like '%"+address.getPhone()+"%'";
		}
        if(!isEmpty(address.getArea())){
        	sql += " and area like '%"+address.getArea()+"%'";
		}
        if(!isEmpty(address.getBm())){
        	sql += " and bm like '%"+address.getBm()+"%'";
		}
        if(!isEmpty(address.getIsUse())){
        	sql += " and isUse like '%"+address.getIsUse()+"%'";
		}
       sql += " ORDER BY ID DESC ";
		Pager<Address> pagers = addressService.findBySqlRerturnEntity(sql);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", address);
		return "address/my";
	}
	
	/**
	 * 分页查询 返回list对象(通过Map)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByMap")
	public String findByMap(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
        if(!isEmpty(address.getName())){
        	params.put("name", address.getName());
		}
        if(!isEmpty(address.getPhone())){
        	params.put("phone", address.getPhone());
		}
        if(!isEmpty(address.getArea())){
        	params.put("area", address.getArea());
		}
        if(!isEmpty(address.getBm())){
        	params.put("bm", address.getBm());
		}
        if(!isEmpty(address.getIsUse())){
        	params.put("isUse", address.getIsUse());
		}
		//分页查询
		Pager<Address> pagers = addressService.findByMap(params);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", address);
		return "address/address";
	}
	
	/**********************************【增删改】******************************************************/
	
	/**
	 * 跳至添加页面
	 * @return
	 */
	@RequestMapping(value = "/add")
	public String add() {
		return "address/add";
	}

	/**
	 * 跳至详情页面
	 * @return
	 */
	@RequestMapping(value = "/view")
	public String view(Integer id,Model model) {
		Address obj = addressService.load(id);
		model.addAttribute("obj",obj);
		return "address/view";
	}
	
	/**
	 * 添加执行
	 * @return
	 */
	@RequestMapping(value = "/exAdd")
	public String exAdd(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		Object attribute = request.getSession().getAttribute("userId");
		if (attribute == null){
			return "redirect:/login/uLogin";
		}
		Integer userId = Integer.valueOf(attribute.toString());
		address.setUserId(userId);
		address.setIsUse(0);
		addressService.insert(address);
		
		return "redirect:/car/view.action";
	}
	
	
	@RequestMapping(value = "/exAdd1")
	public String exAdd1(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		Object attribute = request.getSession().getAttribute("userId");
		if (attribute == null){
			return "redirect:/login/uLogin";
		}
		Integer userId = Integer.valueOf(attribute.toString());
		address.setUserId(userId);
		address.setIsUse(0);
		addressService.insert(address);
		
		return "redirect:/address/my.action";
	}
	
	/**
	 * 跳至修改页面
	 * @return
	 */
	@RequestMapping(value = "/update")
	public String update(Integer id,Model model) {
		Address obj = addressService.load(id);
		model.addAttribute("obj",obj);
		return "address/update";
	}
	
	/**
	 * 添加修改
	 * @return
	 */
	@RequestMapping(value = "/exUpdate")
	public String exUpdate(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		addressService.updateById(address);
		//2.通过主键id修改
		//addressService.updateById(address);
		return "redirect:/car/view.action";
	}
	
	@RequestMapping(value = "/exUpdate2")
	public String exUpdate2(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		addressService.updateById(address);
		//2.通过主键id修改
		//addressService.updateById(address);
		return "redirect:/address/my.action";
	}
	@RequestMapping(value = "/delete1")
	public String delete1(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		addressService.deleteById(id);
		/*以下是多种删除方式*/
		return "redirect:/address/my.action";
	}
	@RequestMapping(value = "/mr")
	public String mr(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		//分页查询
	Object attribute = request.getSession().getAttribute("userId");
	if (attribute == null){
		return "redirect:/login/uLogin";
	}
	JSONObject js = new JSONObject();
	Integer userId = Integer.valueOf(attribute.toString());
	String sql = "SELECT * FROM address WHERE 1=1 and userId = "+userId;
	List<Address> listBySqlReturnEntity = addressService.listBySqlReturnEntity(sql);
	if (!CollectionUtils.isEmpty(listBySqlReturnEntity)){
		for(Address a : listBySqlReturnEntity){
			a.setIsUse(0);
			addressService.updateById(a);
		}
	}
	Address load = addressService.load(id);
	load.setIsUse(1);
	addressService.updateById(load);
		/*以下是多种删除方式*/
		return "redirect:/address/my.action";
	}
	/**
	 * 删除通过主键
	 * @return
	 */
	@RequestMapping(value = "/delete")
	public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		addressService.deleteById(id);
		/*以下是多种删除方式*/
//		//2.通过实体条件删除
//		addressService.deleteByEntity(address);
//		//3.通过参数删除
//     //通过map查询
//		Map<String,Object> params = new HashMap<String,Object>();
//		
//        if(!isEmpty(address.getName())){
//        	params.put("name", address.getName());
//		}
//       
//        if(!isEmpty(address.getPhone())){
//        	params.put("phone", address.getPhone());
//		}
//       
//        if(!isEmpty(address.getArea())){
//        	params.put("area", address.getArea());
//		}
//       
//        if(!isEmpty(address.getBm())){
//        	params.put("bm", address.getBm());
//		}
//       
//        if(!isEmpty(address.getIsUse())){
//        	params.put("isUse", address.getIsUse());
//		}
//       
//		addressService.deleteByMap(params);
//		//4.状态删除
//		Address load = addressService.getById(address.getId())
//		load.setIsDelete(1);
//		addressService.update(load);
		//5.状态删除
		//Address load = addressService.load(id);
		//load.setIsDelete(1);
		//addressService.update(load);
		return "redirect:/address/findBySql.action";
	}
	
	// --------------------------------------- 华丽分割线 ------------------------------
	// --------------------------------------- 【下面是ajax操作的方法。】 ------------------------------

	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAllJson", method = RequestMethod.POST)
	@ResponseBody
	public String listAllJson(Address address, HttpServletRequest request, HttpServletResponse response){
		List<Address> listAll = addressService.listAll();
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntityJson", method = RequestMethod.POST)
	@ResponseBody
	public String listByEntityJson(Address address,  HttpServletRequest request, HttpServletResponse response){
		List<Address> listAll = addressService.listAllByEntity(address);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMapJson", method = RequestMethod.POST)
	@ResponseBody
	public String listByMapJson(Address address,HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(address.getName())){
	        	params.put("name", address.getName());
			}
	        if(!isEmpty(address.getPhone())){
	        	params.put("phone", address.getPhone());
			}
	        if(!isEmpty(address.getArea())){
	        	params.put("area", address.getArea());
			}
	        if(!isEmpty(address.getBm())){
	        	params.put("bm", address.getBm());
			}
	        if(!isEmpty(address.getIsUse())){
	        	params.put("isUse", address.getIsUse());
			}
	    List<Address> listAll = addressService.listByMap(params);
	    JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	
	/**
	 * 分页查询 返回list json(通过对象)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByObjJson", method = RequestMethod.POST)
	@ResponseBody
	public String findByObjByEntityJson(Address address, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<Address> pagers = addressService.findByEntity(address);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	  
	/**
	 * 分页查询 返回list json(通过Map)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByMapJson",  method = RequestMethod.POST)
	@ResponseBody
	public String findByMapJson(Address address,HttpServletRequest request, HttpServletResponse response) {
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
        if(!isEmpty(address.getName())){
        	params.put("name", address.getName());
		}
        if(!isEmpty(address.getPhone())){
        	params.put("phone", address.getPhone());
		}
        if(!isEmpty(address.getArea())){
        	params.put("area", address.getArea());
		}
        if(!isEmpty(address.getBm())){
        	params.put("bm", address.getBm());
		}
        if(!isEmpty(address.getIsUse())){
        	params.put("isUse", address.getIsUse());
		}
		//分页查询
		Pager<Address> pagers = addressService.findByMap(params);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	
	/**
	 * ajax 添加
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
	@ResponseBody
	public String exAddJson(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		addressService.insert(address);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "添加成功");
		return jsonObject.toString();
	}
	

	/**
	 * ajax 修改
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
	@ResponseBody
	public String exUpdateJson(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		addressService.updateById(address);
		//2.通过主键id修改
		//addressService.updateById(address);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "修改成功");
		return jsonObject.toString();
	}

	/**
	 * ajax 删除
	 * @return
	 */
	@RequestMapping(value = "/delete.json", method = RequestMethod.POST)
	@ResponseBody
	public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		addressService.deleteById(id);
		/*以下是多种删除方式*/
//		//2.通过实体条件删除
//		addressService.deleteByEntity(address);
//		//3.通过参数删除
//        //通过map查询
//		Map<String,Object> params = new HashMap<String,Object>();
//		
//        if(!isEmpty(address.getName())){
//        	params.put("name", address.getName());
//		}
//       
//        if(!isEmpty(address.getPhone())){
//        	params.put("phone", address.getPhone());
//		}
//       
//        if(!isEmpty(address.getArea())){
//        	params.put("area", address.getArea());
//		}
//       
//        if(!isEmpty(address.getBm())){
//        	params.put("bm", address.getBm());
//		}
//       
//        if(!isEmpty(address.getIsUse())){
//        	params.put("isUse", address.getIsUse());
//		}
//       
//		addressService.deleteByMap(params);
//		//4.状态删除
//		Address load = addressService.getById(address.getId())
//		load.setIsDelete(1);
//		addressService.updateById(load);
		//5.状态删除
		//Address load = addressService.load(id);
		//load.setIsDelete(1);
		//addressService.updateById(load);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "删除成功");
		return jsonObject.toString();
	}
	/**
	 * 单文件上传
	 * @param file
	 * @param request
	 * @param model
	 * @return
	 */
    @RequestMapping(value = "/saveFile")  
    public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {  
  
        System.out.println("开始");  
        String path = request.getSession().getServletContext().getRealPath("/upload");  
        String fileName = file.getOriginalFilename();  
        System.out.println(path);  
        File targetFile = new File(path, fileName);  
        if(!targetFile.exists()){  
            targetFile.mkdirs();  
        }  
        //保存  
        try {  
            file.transferTo(targetFile);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
        return "";  
    }  
	
	
	/**
	 * springMvc多文件上传
	 * @param files
	 * @param id
	 * @return
	 */
    @RequestMapping(value = "/saveFiles")
    public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
		for(int i = 0;i<files.length;i++){
	      	System.out.println("fileName---------->" + files[i].getOriginalFilename());
		  if(!files[i].isEmpty()){
            int pre = (int) System.currentTimeMillis();
	     	try {
			//拿到输出流,同时重命名上传的文件
			 String filePath = request.getRealPath("/upload");
			 File f=new File(filePath);
			 if(!f.exists()){
				f.mkdirs();
			 }
		     String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
		     File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
			  if(!file.exists()){
				  file.createNewFile();
			 }
			  files[i].transferTo(file);
		     } catch (Exception e) {
				e.printStackTrace();
				System.out.println("上传出错");
			 }
		  }
		}
	  return "";
	}
 // --------------------------------------- 华丽分割线 ------------------------------
	
	
}

 公告管理控制器

@Controller
@RequestMapping("/news")
public class NewsController extends BaseController {
	
	
	/**
	 * 依赖注入 start dao/service/===
	 */
	@Autowired
	private NewsService newsService;
	
	// --------------------------------------- 华丽分割线 ------------------------------
	
	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAll")
	public String listAll(News news, Model model, HttpServletRequest request, HttpServletResponse response){
		List<News> listAll = newsService.listAll();
		model.addAttribute("list", listAll);
		return "news/news";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntity")
	public String listByEntity(News news, Model model, HttpServletRequest request, HttpServletResponse response){
		List<News> listAll = newsService.listAllByEntity(news);
		model.addAttribute("list", listAll);
		return "news/news";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMap")
	public String listByMap(News news, Model model, HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(news.getName())){
	        	params.put("name", news.getName());
			}
	        if(!isEmpty(news.getContent())){
	        	params.put("content", news.getContent());
			}
	        if(!isEmpty(news.getAddTime())){
	        	params.put("addTime", news.getAddTime());
			}
	    List<News> listAll = newsService.listByMap(params);
		model.addAttribute("list", listAll);
		return "news/news";
	}
	
	
	/*********************************查询列表【分页】***********************************************/
	
	
	
	/**
	 * 分页查询 返回list对象(通过对象)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByObj")
	public String findByObj(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<News> pagers = newsService.findByEntity(news);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", news);
		return "news/news";
	}
	
	@RequestMapping(value = "/list")
	public String list(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<News> pagers = newsService.findByEntity(news);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", news);
		return "news/list";
	}
	
	/**
	 * 分页查询 返回list对象(通过Map)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByMap")
	public String findByMap(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
        if(!isEmpty(news.getName())){
        	params.put("name", news.getName());
		}
        if(!isEmpty(news.getContent())){
        	params.put("content", news.getContent());
		}
        if(!isEmpty(news.getAddTime())){
        	params.put("addTime", news.getAddTime());
		}
		//分页查询
		Pager<News> pagers = newsService.findByMap(params);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", news);
		return "news/news";
	}
	
	/**********************************【增删改】******************************************************/
	
	/**
	 * 跳至添加页面
	 * @return
	 */
	@RequestMapping(value = "/add")
	public String add() {
		return "news/add";
	}

	
	/**
	 * 添加执行
	 * @return
	 */
	@RequestMapping(value = "/exAdd")
	public String exAdd(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		news.setAddTime(new Date());
		newsService.insert(news);
		return "redirect:/news/findByObj";
	}
	
	
	/**
	 * 跳至修改页面
	 * @return
	 */
	@RequestMapping(value = "/update")
	public String update(Integer id,Model model) {
		News obj = newsService.load(id);
		model.addAttribute("obj",obj);
		return "news/update";
	}
	
	/**
	 * 跳至修改页面
	 * @return
	 */
	@RequestMapping(value = "/view")
	public String view(Integer id,Model model) {
		News obj = newsService.load(id);
		model.addAttribute("obj",obj);
		return "news/view";
	}
	
	/**
	 * 添加修改
	 * @return
	 */
	@RequestMapping(value = "/exUpdate")
	public String exUpdate(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		newsService.updateById(news);
		//2.通过主键id修改
		//newsService.updateById(news);
		return "redirect:/news/findByObj";
	}
	
	/**
	 * 删除通过主键
	 * @return
	 */
	@RequestMapping(value = "/delete")
	public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		newsService.deleteById(id);
		/*以下是多种删除方式*/
//		//2.通过实体条件删除
//		newsService.deleteByEntity(news);
//		//3.通过参数删除
//     //通过map查询
//		Map<String,Object> params = new HashMap<String,Object>();
//		
//        if(!isEmpty(news.getName())){
//        	params.put("name", news.getName());
//		}
//       
//        if(!isEmpty(news.getContent())){
//        	params.put("content", news.getContent());
//		}
//       
//        if(!isEmpty(news.getAddTime())){
//        	params.put("addTime", news.getAddTime());
//		}
//       
//		newsService.deleteByMap(params);
//		//4.状态删除
//		News load = newsService.getById(news.getId())
//		load.setIsDelete(1);
//		newsService.update(load);
		//5.状态删除
		//News load = newsService.load(id);
		//load.setIsDelete(1);
		//newsService.update(load);
		return "redirect:/news/findByObj";
	}
	
	// --------------------------------------- 华丽分割线 ------------------------------
	// --------------------------------------- 【下面是ajax操作的方法。】 ------------------------------

	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAllJson", method = RequestMethod.POST)
	@ResponseBody
	public String listAllJson(News news, HttpServletRequest request, HttpServletResponse response){
		List<News> listAll = newsService.listAll();
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", news);
		return jsonObject.toString();
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntityJson", method = RequestMethod.POST)
	@ResponseBody
	public String listByEntityJson(News news,  HttpServletRequest request, HttpServletResponse response){
		List<News> listAll = newsService.listAllByEntity(news);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", news);
		return jsonObject.toString();
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @author 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMapJson", method = RequestMethod.POST)
	@ResponseBody
	public String listByMapJson(News news,HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(news.getName())){
	        	params.put("name", news.getName());
			}
	        if(!isEmpty(news.getContent())){
	        	params.put("content", news.getContent());
			}
	        if(!isEmpty(news.getAddTime())){
	        	params.put("addTime", news.getAddTime());
			}
	    List<News> listAll = newsService.listByMap(params);
	    JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", news);
		return jsonObject.toString();
	}
	
	
	/**
	 * 分页查询 返回list json(通过对象)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByObjJson", method = RequestMethod.POST)
	@ResponseBody
	public String findByObjByEntityJson(News news, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<News> pagers = newsService.findByEntity(news);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", news);
		return jsonObject.toString();
	}
	
	  
	/**
	 * 分页查询 返回list json(通过Map)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByMapJson",  method = RequestMethod.POST)
	@ResponseBody
	public String findByMapJson(News news,HttpServletRequest request, HttpServletResponse response) {
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
        if(!isEmpty(news.getName())){
        	params.put("name", news.getName());
		}
        if(!isEmpty(news.getContent())){
        	params.put("content", news.getContent());
		}
        if(!isEmpty(news.getAddTime())){
        	params.put("addTime", news.getAddTime());
		}
		//分页查询
		Pager<News> pagers = newsService.findByMap(params);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", news);
		return jsonObject.toString();
	}
	
	
	/**
	 * ajax 添加
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
	@ResponseBody
	public String exAddJson(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		newsService.insert(news);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "添加成功");
		return jsonObject.toString();
	}
	

	/**
	 * ajax 修改
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
	@ResponseBody
	public String exUpdateJson(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		newsService.update(news);
		//2.通过主键id修改
		//newsService.updateById(news);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "修改成功");
		return jsonObject.toString();
	}

	/**
	 * ajax 删除
	 * @return
	 */
	@RequestMapping(value = "/delete.json", method = RequestMethod.POST)
	@ResponseBody
	public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		newsService.deleteById(id);
		/*以下是多种删除方式*/
//		//2.通过实体条件删除
//		newsService.deleteByEntity(news);
//		//3.通过参数删除
//        //通过map查询
//		Map<String,Object> params = new HashMap<String,Object>();
//		
//        if(!isEmpty(news.getName())){
//        	params.put("name", news.getName());
//		}
//       
//        if(!isEmpty(news.getContent())){
//        	params.put("content", news.getContent());
//		}
//       
//        if(!isEmpty(news.getAddTime())){
//        	params.put("addTime", news.getAddTime());
//		}
//       
//		newsService.deleteByMap(params);
//		//4.状态删除
//		News load = newsService.getById(news.getId())
//		load.setIsDelete(1);
//		newsService.update(load);
		//5.状态删除
		//News load = newsService.load(id);
		//load.setIsDelete(1);
		//newsService.update(load);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "删除成功");
		return jsonObject.toString();
	}
	/**
	 * 单文件上传
	 * @param file
	 * @param request
	 * @param model
	 * @return
	 */
    @RequestMapping(value = "/saveFile")  
    public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {  
  
        System.out.println("开始");  
        String path = request.getSession().getServletContext().getRealPath("/upload");  
        String fileName = file.getOriginalFilename();  
        System.out.println(path);  
        File targetFile = new File(path, fileName);  
        if(!targetFile.exists()){  
            targetFile.mkdirs();  
        }  
        //保存  
        try {  
            file.transferTo(targetFile);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
        return "";  
    }  
	
	
	/**
	 * springMvc多文件上传
	 * @param files
	 * @param id
	 * @return
	 */
    @RequestMapping(value = "/saveFiles")
    public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
		for(int i = 0;i<files.length;i++){
	      	System.out.println("fileName---------->" + files[i].getOriginalFilename());
		  if(!files[i].isEmpty()){
            int pre = (int) System.currentTimeMillis();
	     	try {
			//拿到输出流,同时重命名上传的文件
			 String filePath = request.getRealPath("/upload");
			 File f=new File(filePath);
			 if(!f.exists()){
				f.mkdirs();
			 }
		     String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
		     File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
			  if(!file.exists()){
				  file.createNewFile();
			 }
			  files[i].transferTo(file);
		     } catch (Exception e) {
				e.printStackTrace();
				System.out.println("上传出错");
			 }
		  }
		}
	  return "";
	}
 // --------------------------------------- 华丽分割线 ------------------------------
	
	
}

如果也想学习本系统,下面领取。关注并回复:076ssm 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低功耗局域网通信硬件之lora——sx1262-sx1276硬件设计开发

1.lora简介 LoRa是semtech公司开发的一种低功耗局域网无线标准&#xff0c;其名称“LoRa”是远距离无线电&#xff08;Long Range Radio&#xff09;&#xff0c;它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远&#xff0c;实现了低功耗和远距离的统一&#x…

浅谈ES标准的演变

ECMAScript从1997年第一版诞生依赖&#xff0c;经过无数人的“踩坑”和“填坑”&#xff0c;到现在&#xff0c;ES12呼之欲出。那么我们不妨讨论一下ES的发展历程&#xff0c;看它如何统一江湖&#xff0c;看它“曲折”而又令人期待的发展之路。 最近分析typescript&#xff0c…

双机互备是什么意思?双机互备就是双机热备吗?

看到不少小伙伴在问&#xff0c;双机互备是什么意思&#xff1f;双机互备就是双机热备吗&#xff1f;今天我们就来一起简单了解了解吧&#xff01; 双机互备是什么意思&#xff1f;双机互备就是双机热备吗&#xff1f; 双机互备是指在双机热备的基础上&#xff0c;两个相对独…

【AI数学】余弦相似性(含python实现)

Cosine Similarity&#xff0c;即余弦相似度&#xff0c;又叫余弦相似性。是一个中学数学的概念&#xff0c;即用两个向量之间的夹角余弦值代表这两个向量之间的相似度。 Cosine Similarity虽然简单&#xff0c;但广泛应用在AI模型中&#xff0c;比如CLIP计算图像embedding和文…

【KCP】UDP可靠性传输

1 如何做到可靠性传输 ◼ ACK机制 ◼ 重传机制 ◼ 序号机制 3 2 1 -》2 3 1 ◼ 重排机制 2 3 1 ->3 2 1 ◼ 窗口机制 Tcp不用我们管 可靠性udp 5种机制都需要用户层处理 2 UDP与TCP&#xff0c;我们如何选择 3 UDP如何可靠&#xff0c;KCP协议在哪些方面有优势 以10%-20%…

Java人事管理系统oa人力人事办公(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用技术JSP、Struts2、MyBatis、dwr、Tomcat服务器、MySQL数据库、项目含有源码、配套开发软件、软件安装教程、项目发布教程以及代码讲解教程 【项目使用技术&#xff1a;】Struts2MyBatisdwrjqueryjscss等技术 【技术特色】 文件上传&#xff1a; Strut…

Android依赖注入与Hilt的使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 基础知识 一、依赖注入是什么&#xff1f; 二.如果依赖注入这么简单&#xff0c;为什么需要专门开发一个框架&#xff1f; 三.安卓的依赖注入框架Dagger与Hilt 四.…

[附源码]计算机毕业设计基于Springboot甜品购物网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

如何恢复文件夹隐藏文件?超实用的2种技巧来了

案例&#xff1a;电脑中毒&#xff0c;文件夹数据自动隐藏&#xff0c;现在全都找不到了怎么办&#xff1f;——在日常办公使用电脑过程当中&#xff0c;总会遇到这样那样的问题&#xff0c;比如文件夹数据隐藏问题&#xff0c;当我们需要这些数据时如何恢复正常呢&#xff1f;…

java计算机毕业设计ssm图书馆管理系统z3z90(附源码、数据库)

java计算机毕业设计ssm图书馆管理系统z3z90&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;…

[附源码]计算机毕业设计基于SpringBoot的疫苗接种管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

算法leetcode|19. 删除链表的倒数第 N 个结点(rust重拳出击)

文章目录19. 删除链表的倒数第 N 个结点&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a;原题传送门&#xff1a;分析题解rustgocpythonjava19. 删除链表的倒数第 N 个结点&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结…

专享策略No.3 | 商品截面交易策略

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 『正文』 ˇ 大家好&#xff0c;2022松鼠俱乐部临近收官。前面发布了专享策略01V3 | 小短波策略&#xff0c;专享策略No.2 | 套利策略-自动换仓-出场加速。今天我们交付第三个专享策略&#xff1a;商品…

C语言—详解库函数中常用的字符串函数

C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在 常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。本篇文章为大家详解八个常用的字符串操作函数&#xff0c;同时我们尝试模拟实现该函…

OpenCV入门(C++/Python)-使用OpenCV裁剪图像(四)

裁剪是为了从图像中删除所有不需要的物体或区域。甚至突出显示图像的特定功能。 使用OpenCV裁剪没有特定的功能&#xff0c;NumPy数组切片是工作。读取的每个图像都存储在2D数组中&#xff08;对于每个颜色通道&#xff09;。只需指定要裁剪区域的高度和宽度&#xff08;以像素…

Linux安装 dotnet sdk 6.0

一、离线安装&#xff08;推荐&#xff09; 1、下载安装包 官网下载地址 2、安装 &#xff08;1&#xff09;将安装包上传到linux服务器上的指定目录&#xff0c;如&#xff1a;/root/dotnet/sdk&#xff0c;运行下面指令解压即可 # cd /root/dotnet/sdk # mkdir -p $HOM…

毕设项目 - SSM留学生交流互动论坛系统(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.2.1 系统开发流程3.2.2 学生登录流程3.2.3 系统操作流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新…

微服务的好处(优点)有哪些?

显然&#xff0c;随着系统复杂度的提升&#xff0c;以及对系统扩展性的要求越来越高&#xff0c;微服务化是一个很好的方向&#xff0c;但除此之外&#xff0c;微服务还会给我们带来哪些好处&#xff1f; 独立&#xff0c;独立&#xff0c;还是独立 我们说微服务打响的是各自…

虹科方案|具有RDMA复制写入日志的高可用性HDD存储集群可提供出色的性能

一、引言 Open-E、Western Digital 和 ATTO 数据存储专家和工程师联手推出了基于 HDD 的数据存储设备&#xff0c;该设备结合Western Digital Ultrastar Data60 JBOD 的海量容量和Ultrastar 系列 HDD 以及加速的性能&#xff0c;这得益于ATTO HBA SAS 控制器和 100GbE NIC&…

制作一个简单HTML大学生抗疫感动专题网页(HTML+CSS)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…