ssm项目-商品购物系统-我的购物车功能实现

7-24日Java实训感受

  1. 7-24号周五,是java实训的第五天,今天实训老师带我们学习使用ssm框架实现用户管理后台的角色管理的实现,包括对添加角色、修改角色、删除角色等功能。
  2. 在这些功能的是实现中,让我对ssm框架中的实体类层、持久层、服务层、控制层有了一个更加深刻的了解,同时也更加熟悉了数据库sql语句的操作。
  3. 此外,针对小组开发的商品购物系统进行一个我的购物车功能的实现。
  4. 开发完毕后,上传到码云,进行仓库的更新。

ssm框架角色管理实现流程

  1. bean实体类(PageInfo)
package com.zr.bean;

import java.util.List;

public class PageInfo<T> {
    private List<T> list;
    private int totalCount;
    private int size;
    private int totalPages;
    private int currentPage;

    public PageInfo() {
    }

    public PageInfo(List<T> list, int totalCount, int size, int totalPages, int currentPage) {
        this.list = list;
        this.totalCount = totalCount;
        this.size = size;
        this.totalPages = totalPages;
        this.currentPage = currentPage;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public int getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    @Override
    public String toString() {
        return "PageInfo{" +
                "list=" + list +
                ", totalCount=" + totalCount +
                ", size=" + size +
                ", totalPages=" + totalPages +
                ", currentPage=" + currentPage +
                '}';
    }
}

  1. 控制层
package com.zr.controller;

import com.zr.bean.PageInfo;
import com.zr.bean.Role;
import com.zr.bean.User;
import com.zr.service.IRoleService;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpSession;
import javax.swing.plaf.PanelUI;
import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("user")

public class UserController {

    @Autowired
    private IUserService userService;

    @Autowired
    private IRoleService roleService;

    @RequestMapping("login.do")
//    public ModelAndView login(String username, String password){
    public ModelAndView login(User user, HttpSession session){
//        boolean flag = userService.login(username, password);  //调用服务层的判断登录逻辑函数
        int id = userService.login(user.getUsername(), user.getPassword());  //调用服务层的判断登录逻辑函数
        ModelAndView modelAndView = new ModelAndView();
        if (id != -1){
            //根据用户id查询出roleid
            List<Integer> roleIds = roleService.findRoleByUserId(id);
            session.setAttribute("user",user);
            session.setAttribute("roleIds", roleIds);
            modelAndView.setViewName("main");
        }
        else {
            modelAndView.setViewName("../failer");
        }
        return modelAndView;
    }

    @RequestMapping("findAll.do")
    public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage, String username,
                                @RequestParam(defaultValue = "0") int type,
                                HttpSession session){
        if (type == 1){
            session.setAttribute("searchname", username);
        }else if(type == 0){
            username = (String) session.getAttribute("searchname");
        }
        else if (type == 2){
            session.removeAttribute("searchname");
        }

        PageInfo<User> pageInfo = userService.findAll(currentPage, username);
        ModelAndView mv = new ModelAndView();
        mv.setViewName("user-list");
        mv.addObject("pageInfo",pageInfo);
        return mv;
    }

    @RequestMapping("deleteById.do")
    public String deleteById(int id){
        System.out.println(id);
        userService.deleteById(id);
        return "redirect:findAll.do";
    }

    @RequestMapping("add.do")
    public String add(User user){
        userService.add(user);
        return "redirect:findAll.do";
    }

    @RequestMapping("toUpdate.do")
    public ModelAndView toUpdate(int id){
        User user = userService.selectUserById(id);

        ModelAndView mv = new ModelAndView();
        mv.addObject("user", user);
        mv.setViewName("user-update");
        return mv;
    }

    @RequestMapping("update.do")
    public String update(User user){
        userService.update(user);
        return "redirect:findAll.do";
    }

    @RequestMapping("logout.do")
    public String logout(HttpSession session)
    {
//        ModelAndView modelAndView =new ModelAndView();
        session.removeAttribute("user");
        return "../login";
    }

    @RequestMapping("toAddRole.do")
    public ModelAndView toAddRole(int id){
        List<Role> roleList = roleService.findNotRoleByUserId(id);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("roles", roleList);
        modelAndView.setViewName("user-role-add");
        modelAndView.addObject("id",id);
        return modelAndView;
    }

    @RequestMapping("AddRole.do")
    public String AddRole(String roleIds, String userId){
        String[] strs = roleIds.split(",");
        List<Integer> ids = new ArrayList<>();
        for (String s:strs){
            ids.add(Integer.parseInt(s));
        }
        roleService.addRole(ids,Integer.parseInt(userId));
        return "redirect:findAll.do";
    }


    @RequestMapping("deleteAll.do")
    @ResponseBody
    public String deleteAll(String userList){
        String[] strings = userList.split(",");
        List<Integer> ids = new ArrayList<>();
        for (String s:strings){
            ids.add(Integer.parseInt(s));
        }
        userService.deletetAll(ids);
        return "";
    }


}

  1. 持久层接口以及相应xml映射实现
package com.zr.service.impl;

import com.zr.bean.PageInfo;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements IUserService {

    @Autowired
    private IUserDao userDao;

    @Override
    public int login(String username, String password) {
        User user =userDao.findUserByUsername(username);    //调用永久层中的find方法,进行数据库的查询操作
        if (user != null && user.getPassword().equals(password)){
            return user.getId();
        }
        return -1;
    }

    @Override
    public PageInfo<User> findAll(int currentPage, String username) {
        PageInfo pageInfo = new PageInfo();

        int totalcount = userDao.getTotalCount(username);
        pageInfo.setTotalCount(totalcount);
        double d = totalcount / 5.0;
//        double d = pageInfo.getTotalCount() / 5.0;
        int tp = (int) Math.ceil(d);
        pageInfo.setTotalPages(tp);

        pageInfo.setSize(5);
        if (currentPage < 1){
            pageInfo.setCurrentPage(1);
        }else if (currentPage > tp){
            pageInfo.setCurrentPage(tp);
        }else {
            pageInfo.setCurrentPage(currentPage);
        }

        int start = (pageInfo.getCurrentPage() - 1) * 5;
        List<User> userList = userDao.findAll(start, 5,username);
        pageInfo.setList(userList);

        return pageInfo;
    }

    @Override
    public void deleteById(int id) {
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) {
        userDao.add(user);
    }

    @Override
    public User selectUserById(int id) {
        return userDao.selectUserById(id);
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }

    @Override
    public void deletetAll(List<Integer> ids) {
        userDao.deleteAll(ids);
    }
}

  1. 服务层接口及实现xml文件
package com.zr.service.impl;

import com.zr.bean.PageInfo;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements IUserService {

    @Autowired
    private IUserDao userDao;

    @Override
    public int login(String username, String password) {
        User user =userDao.findUserByUsername(username);    //调用永久层中的find方法,进行数据库的查询操作
        if (user != null && user.getPassword().equals(password)){
            return user.getId();
        }
        return -1;
    }

    @Override
    public PageInfo<User> findAll(int currentPage, String username) {
        PageInfo pageInfo = new PageInfo();

        int totalcount = userDao.getTotalCount(username);
        pageInfo.setTotalCount(totalcount);
        double d = totalcount / 5.0;
//        double d = pageInfo.getTotalCount() / 5.0;
        int tp = (int) Math.ceil(d);
        pageInfo.setTotalPages(tp);

        pageInfo.setSize(5);
        if (currentPage < 1){
            pageInfo.setCurrentPage(1);
        }else if (currentPage > tp){
            pageInfo.setCurrentPage(tp);
        }else {
            pageInfo.setCurrentPage(currentPage);
        }

        int start = (pageInfo.getCurrentPage() - 1) * 5;
        List<User> userList = userDao.findAll(start, 5,username);
        pageInfo.setList(userList);

        return pageInfo;
    }

    @Override
    public void deleteById(int id) {
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) {
        userDao.add(user);
    }

    @Override
    public User selectUserById(int id) {
        return userDao.selectUserById(id);
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }

    @Override
    public void deletetAll(List<Integer> ids) {
        userDao.deleteAll(ids);
    }
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
    <select id="findUserByUsername" parameterType="String" resultType="com.zr.bean.User">
        select * from tb_user where username = #{username}
    </select>
    <select id="findAll" resultType="user">
        select * from tb_user
        <if test="username!=null and username !=''">
            where username like concat("%", #{username},"%")
        </if>
        limit #{start}, #{size}
    </select>
    <delete id="deleteById" parameterType="int">
        delete from tb_user where id = #{id}
    </delete>
    <insert id="add" parameterType="user">
        insert into tb_user(username, password) values (#{username}, #{password})
    </insert>
    <select id="selectUserById" parameterType="int" resultType="user">
        select * from tb_user where id = #{id}
    </select>
    <update id="update" parameterType="user">
        update tb_user set username = #{username}, password = #{password} where id = #{id}
    </update>
    <select id="getTotalCount" resultType="int">
        select count(*) from tb_user
        <if test="username!=null and username !=''">
            where username like concat("%", #{username},"%")
        </if>
    </select>
    <delete id="deleteAll" parameterType="list">
        delete from tb_user where id in 
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>
</mapper>

实现效果(角色管理)

在这里插入图片描述

小组ssm项目我的购物车功能实现

在中午花了一个小时时间完成了老师早上教授的内容后,我就开始小组项目中我的分工,即我的购物车子功能实现

  1. dao层
package com.taobao.dao;

import com.taobao.bean.CarInfo;

import java.util.List;

public interface CarDao {
    List<CarInfo> findAllCar(int userId);

    CarInfo selectUserById(int id);

    void update(CarInfo shopcarinfo);

    double selectTotal(int id);

    void deleteById(int id);
}

  1. controller层
package com.taobao.controller;



import com.taobao.bean.CarInfo;
import com.taobao.service.CarService;

import com.taobao.bean.Goods;
import com.taobao.bean.Pages;
import com.taobao.service.IShopService;
import com.taobao.service.impl.ShopServiceImpl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


import java.util.ArrayList;

import java.util.List;

@Controller
@RequestMapping("shop")

public class shopController {
    @Autowired
    private IShopService shopService;


    @Autowired
    private CarService carService;

    @RequestMapping("user_manage.do")
    public ModelAndView User_Manage(){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("user-list");
        return mv;
    }

    @RequestMapping("my_collection.do")
    public ModelAndView My_Collection(){
        List<Goods> goodsList = shopService.findAll();
        ModelAndView mv=new ModelAndView();
        mv.setViewName("shop-collect");
        mv.addObject("gs",goodsList);
        return mv;
    }
    @RequestMapping("addCar.do")
    public String addCar(String idList){
        String[] strs=idList.split(",");
        System.out.println(strs);
        List<Integer> ids=new ArrayList<>();
        for(String s:strs){
            System.out.println(s);
            ids.add(Integer.parseInt(s));
        }
       shopService.addCar(ids);
       return "redirect:addCar.do";
    }

    @RequestMapping("addOrder.do")
    public String addOrder(String idList){
        String[] strs=idList.split(",");
        System.out.println(strs);
        List<Integer> ids=new ArrayList<>();
        for(String s:strs){
            System.out.println(s);
            ids.add(Integer.parseInt(s));
        }
        shopService.addOrder(ids);
        return "redirect:addCar.do";
    }

    /*
    *我的购物车页面
     */
    @RequestMapping("shop_car.do")
    public ModelAndView Shop_Car(int userId){
        List<CarInfo> shopcarList = carService.findAllCar(userId);
        ModelAndView mv = new ModelAndView();
        mv.addObject("roles", shopcarList);
        mv.setViewName("shop-car");
        mv.addObject("userId",userId);
//        mv.setViewName("user-role-add");
        return mv;
    }

    /*
    *修改商品信息
     */
    @RequestMapping("toUpdate.do")
    public ModelAndView toUpdate(int id){
        CarInfo shopinfo = carService.selectUserById(id);

        ModelAndView mv = new ModelAndView();
        mv.addObject("shopinfo", shopinfo);
        mv.setViewName("shopcar-update");
        return mv;
    }

    //修改后保存
    @RequestMapping("save.do")
    public String update(CarInfo shopcarinfo){
//        String total = carService.selectTotal(shopcarinfo.getId());   //单价
//        int totalprice =Integer.parseInt(total);
//        int finaltotal =shopcarinfo.getNum() * totalprice;
//        shopcarinfo.setTotal(Integer.toString(finaltotal));
//        String price = carService.selectTotal(shopcarinfo.getId());
//        int curretprice = Integer.parseInt(price);
//        int finaltotal = shopcarinfo.getNum() * curretprice;
//        shopcarinfo.setTotal(Integer.toString(finaltotal));
//        carService.update(shopcarinfo);

        double price = carService.selectTotal(shopcarinfo.getId());
//        int curretprice = Integer.parseInt(price);
        double finaltotal = shopcarinfo.getNum() * price;
        shopcarinfo.setTotal(Double.toString(finaltotal));
        carService.update(shopcarinfo);
        return "redirect:shop_car.do?userId=1";
    }

    /*
    *删除购物车记录
     */

    @RequestMapping("deleteById.do")
    public String deleteById(int id){
        System.out.println(id);
        carService.deleteById(id);
        return "redirect:shop_car.do?userId=1";
    }

    @RequestMapping("shop_order.do")
    public ModelAndView Shop_Order(){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("shop-order");
        return mv;
    }

    @RequestMapping("yonghu_info.do")
    public ModelAndView YongHu_Info(){

        ModelAndView mv = new ModelAndView();
        mv.setViewName("yonghu-info");
        return mv;
    }
}

  1. service层
package com.taobao.service;

import com.taobao.bean.CarInfo;

import java.util.List;

public interface CarService {
    List<CarInfo> findAllCar(int userId);

    CarInfo selectUserById(int id);

    void update(CarInfo shopcarinfo);

    double selectTotal(int id);

    void deleteById(int id);
}

  1. 数据库映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.taobao.dao.CarDao">
    <select id="findAllCar" parameterType="int" resultType="carinfo">
        select * from shop_car where user_id = #{userId}
    </select>
    <select id="selectUserById" parameterType="int" resultType="carinfo">
        select * from shop_car where id = #{id}
    </select>
    <select id="selectTotal" parameterType="int"  resultType="double">
        select price from shop_car where id = #{id}
    </select>
    <update id="update" parameterType="carinfo">
        update shop_car set shopname = #{shopname}, num = #{num}, total = #{total} where id = #{id}
    </update>
    <delete id="deleteById" parameterType="int">
        delete from shop_car where id = #{id}
    </delete>
</mapper>
  1. 实现结果:
    在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值