Spring+Mybatis整合案例电商模块二

一级类型和商品信息展示

ListServlet

package com.imooc.shop.action;

import com.imooc.shop.bean.Article;
import com.imooc.shop.bean.ArticleType;
import com.imooc.shop.service.ShopService;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/list")
public class ListServlet extends HttpServlet {
    //定义业务类对象
    private ShopService shopService;

    private HttpServletRequest request;
    private HttpServletResponse response;

    @Override
    public void init() throws ServletException {
        super.init();
        //获取Spring容器,然后从容器中得到业务层对象
        ServletContext servletContext = this.getServletContext();
        WebApplicationContext context =
                WebApplicationContextUtils.getWebApplicationContext(servletContext);
        shopService = (ShopService)context.getBean("shopService");

    }

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.request=request;
        this.response=response;
        //1.查询所有的一级类型数据
        List<ArticleType> firstArticleTypes = shopService.loadFirstArticleTypes();
        //2.查询所有的商品信息
        List<Article> articles = shopService.searchArticles();
        request.setAttribute("firstArticleTypes",firstArticleTypes);
        request.setAttribute("articles",articles);
        request.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(request,response);
    }
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

ShopService

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

ShopServiceImpl

package com.imooc.shop.service;

import com.imooc.shop.bean.Article;
import com.imooc.shop.bean.ArticleType;
import com.imooc.shop.bean.User;
import com.imooc.shop.repository.ArticleMapper;
import com.imooc.shop.repository.ArticleTypeMapper;
import com.imooc.shop.repository.UserMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("shopService")
public class ShopServiceImpl implements ShopService {

    //得到数据访问层对象
    @Resource
    private ArticleTypeMapper articleTypeMapper;

    @Resource
    private UserMapper userMapper;

    @Resource
    private ArticleMapper articleMapper;

    @Override
    public List<ArticleType> getArticleTypes() {
        return articleTypeMapper.getArticleTypes();
    }

    @Override
    public Map<String, Object> login(String loginName, String passWord) {
       Map<String,Object> results = new HashMap<>();
       //判断参数是否为空的
        if(StringUtils.isEmpty(loginName)||StringUtils.isEmpty(passWord)){
            //参数为空了
            results.put("code",1);
            results.put("msg","参数为空了");
        }else{
            //根据登录名称去查询用户对象
            User user =userMapper.login(loginName);
            if(user !=null){
                //判断密码
                if(user.getPassword().equals(passWord)){
                    //登录成功了
                    //应该将登陆成功的用户存到Session会话中
                    results.put("code",0);
                    results.put("msg",user);

                }else{
                    //密码错误了
                    results.put("code",2);
                    results.put("msg","密码错误了");
                }
            }else{
                //登录名不存在
                results.put("code",3);
                results.put("msg","登录名不存在");
            }

        }
        return results;
    }
    @Override
    public List<ArticleType> loadFirstArticleTypes() {
        List<ArticleType> articleTypes =articleTypeMapper.getFirstArticleTypes();
        return articleTypes;
    }

    @Override
    public List<Article> searchArticles() {
        return articleMapper.searchArticles();
    }

}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

ArticleMapper

<?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.imooc.shop.repository.ArticleMapper">
	<select id="searchArticles" resultType="Article">
		select * from ec_article
	</select>
</mapper>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

实现点击一级类型展示二级类型并且查询对应类型下的商品

ListServlet.java

package com.imooc.shop.action;

import com.imooc.shop.bean.Article;
import com.imooc.shop.bean.ArticleType;
import com.imooc.shop.service.ShopService;
import org.springframework.util.StringUtils;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


@WebServlet("/list")
public class ListServlet extends HttpServlet {
    //定义业务类对象
    private ShopService shopService;

    private HttpServletRequest request;
    private HttpServletResponse response;

    @Override
    public void init() throws ServletException {
        super.init();
        //获取Spring容器,然后从容器中得到业务层对象
        ServletContext servletContext = this.getServletContext();
        WebApplicationContext context =
                WebApplicationContextUtils.getWebApplicationContext(servletContext);
        shopService = (ShopService)context.getBean("shopService");

    }

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
            this.request=request;
            this.response=response;
            String method = request.getParameter("method");
            switch (method){
                case "getAll":
                    getAll();
                    break;
                case "":

            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    private void getAll() throws ServletException, IOException {
        //接受一级类型编号查询
        String typeCode =request.getParameter("typeCode");

        //根据一级类型查询对应的二级类型
        if(!StringUtils.isEmpty(typeCode)){
            List<ArticleType> secondTypes = shopService.loadSecondTypes(typeCode);
            request.setAttribute("secondTypes",secondTypes);

        }

        //1.查询所有的一级类型数据
        List<ArticleType> firstArticleTypes = shopService.loadFirstArticleTypes();
        //2.查询所有的商品信息
        List<Article> articles = shopService.searchArticles(typeCode);
        request.setAttribute("firstArticleTypes",firstArticleTypes);
        request.setAttribute("articles",articles);
        request.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(request,response);
    }
}

shopServiceImpl

shopServlet

ArticleTypeMapper

ArticleMapper

 ArticleMapper.xml

concat 连接字符串

实现商品标题搜索功能,动态sql语句介绍

在list.jsp中加入

<!--  横幅下方的主体结束 -->
<!-- 一般来讲,css必须在head里面引入,因为页面加载完成,就需要显示正确的样式 -->
<!-- js一般在页面最后面加载,等页面布局都完成以后,再来处理js文件! -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="${pageContext.request.contextPath }/resources/jquery/jquery.js"></script>
<script src="${pageContext.request.contextPath }/resources/bootstrap/js/bootstrap.js"></script>
<script src="${pageContext.request.contextPath }/resources/js/taobao.js"></script>
<script type="text/javascript">
    // 等整个加载完成以后为二级类型绑定切换事件
    $(function () {
        $("#secondType").change(function () {
            window.location = "${pageContext.request.contextPath}/list?method=getAll&typeCode=${typeCode}&secondType=" + this.value;
        });

        // 把二级类型选中
        $("#secondType").val("${secondType}");
    });
</script>

ListServlet

    private void getAll() throws ServletException, IOException {
        //接受一级类型编号查询
        String typeCode =request.getParameter("typeCode");
        //接受二级类型编号查询
        String secondType = request.getParameter("secondType");
        //转回到界面,使二级类型选中
        request.setAttribute("secondType",secondType);

        //根据一级类型查询对应的二级类型
        if(!StringUtils.isEmpty(typeCode)){
            List<ArticleType> secondTypes = shopService.loadSecondTypes(typeCode);
            request.setAttribute("typeCode",typeCode);
            request.setAttribute("secondTypes",secondTypes);

        }

        //1.查询所有的一级类型数据
        List<ArticleType> firstArticleTypes = shopService.loadFirstArticleTypes();
        //2.查询所有的商品信息
        List<Article> articles = shopService.searchArticles(typeCode,secondType);
        request.setAttribute("firstArticleTypes",firstArticleTypes);
        request.setAttribute("articles",articles);
        request.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(request,response);
    }

shopService

shopServiceImpl

ArticleMapper

ArticleMapper.xml

实现搜索功能

ListServlet

private void getAll() throws ServletException, IOException {
        //接受一级类型编号查询
        String typeCode =request.getParameter("typeCode");
        //接受二级类型编号查询
        String secondType = request.getParameter("secondType");
        //接受标题搜索
        String title = request.getParameter("title");
        //转回界面
        request.setAttribute("title",title);
        //转回到界面,使二级类型选中
        request.setAttribute("secondType",secondType);

        //根据一级类型查询对应的二级类型
        if(!StringUtils.isEmpty(typeCode)){
            List<ArticleType> secondTypes = shopService.loadSecondTypes(typeCode);
            request.setAttribute("typeCode",typeCode);
            request.setAttribute("secondTypes",secondTypes);

        }

        //1.查询所有的一级类型数据
        List<ArticleType> firstArticleTypes = shopService.loadFirstArticleTypes();
        //2.查询所有的商品信息
        List<Article> articles = shopService.searchArticles(typeCode,secondType,title);
        request.setAttribute("firstArticleTypes",firstArticleTypes);
        request.setAttribute("articles",articles);
        request.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(request,response);
    }

shopService

shopServiceImpl

ArticleMapper

ArticleMapper.xml

解决编码问题

ListServlet

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值