java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示(二)

简介: java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示

src/main/java/db

DBConn.java

package db;
import java.sql.*;
public class DBConn {
  public Connection getConnection() {
    String URL = "jdbc:mysql://localhost:3306/bigproject?characterEncoding=utf-8";
    String USER = "root";
    String PASSWORD = "111111";
    try {
      Class.forName("com.mysql.cj.jdbc.Driver");
      Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
      return conn;
  } catch (ClassNotFoundException e) {      
    e.printStackTrace();
  }catch (SQLException e) {     
    e.printStackTrace();
  } 
    return null;
  }
}

src/main/java/service

GoodsService.java

package service;
import java.sql.SQLException;
import java.util.List;
import bean.*;
/**
 * 这是商品的业务处理规范
 *
 */
public interface GoodsService {
  PageBean findGoodsByPage(int currentPage) throws SQLException ;
  List<Goods> findAll()  throws SQLException ;
  /**
   * 根据ID查询单个商品对象
   */
  Goods findGoodsById(int id)  throws SQLException ;
  /**
   * 模糊查询, 根据姓名或者根据性别,或者两者兼有。 
   */
  List<Goods> searchGoods(String gname , double price)  throws SQLException ;
  /**
   * 添加商品
   */
  void insert(Goods goods) throws SQLException ;
  /**
   * 根据id删除商品
   */
  void delete(int id) throws SQLException ;
}

src/main/java/service/impl

GoodsServiceImpl.java
package service.impl;
import java.sql.SQLException;
import java.util.List;
import dao.*;
import dao.impl.*;
import bean.*;
import service.*;
/**
 * 这是商品业务实现
 *
 */
public class GoodsServiceImpl implements GoodsService{
  @Override
  public List<Goods> findAll() throws SQLException {
    GoodsDao dao = new GoodsDaoImpl();
    return dao.findAll();
  }
  @Override
  public void insert(Goods goods) throws SQLException {
    GoodsDao dao = new GoodsDaoImpl();
    dao.insert(goods);
  }
  @Override
  public void delete(int id) throws SQLException {
    GoodsDao dao = new GoodsDaoImpl();
    dao.delete(id);
  }
  @Override
  public Goods findGoodsById(int id) throws SQLException {
    GoodsDao dao = new GoodsDaoImpl();
    return dao.findGoodsById(id);
  }
  @Override
  public List<Goods> searchGoods(String gname, double price) throws SQLException {
    return new GoodsDaoImpl().searchGoods(gname, price);
  }
  @Override
  public PageBean<Goods> findGoodsByPage(int currentPage) throws SQLException {
    //封装分页的该页数据
    PageBean<Goods> pageBean = new PageBean<Goods>();
    int pageSize = GoodsDao.PAGE_SIZE ;
    pageBean.setCurrentPage(currentPage); //设置当前页
    pageBean.setPageSize(pageSize); //设置每页显示多少记录
    GoodsDao dao = new GoodsDaoImpl() ;
    List<Goods> list =dao.findGoodsByPage(currentPage);
    pageBean.setList(list); //设置这一页的商品数据
    //总的记录数, 总的页数。
    int count = dao.findCount();
    pageBean.setTotalSize(count); //设置总的记录数
    //200 , 10 ==20   201 , 10 = 21   201 % 10 == 0 ?201 / 10 :201 % 10 + 1
    pageBean.setTotalPage(count % pageSize==0 ? count / pageSize : (count / pageSize) + 1); //总页数
    return pageBean;
  }
}

src/main/java/servlet

AddServlet.java

package servlet;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.Goods;
import service.GoodsService;
import service.impl.GoodsServiceImpl;
/**
 * 用于处理商品的添加请求
 *
 */
public class AddServlet extends HttpServlet {
  @Override
  public void init() throws ServletException{
    super.init();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    try {
      //1. 获取客户端提交上来的数据
      String gname = request.getParameter("gname"); //sname:zhangsan
      String sprice = request.getParameter("price");
      double price=Double.parseDouble(sprice);
      Goods goods = new Goods(gname,price);
      GoodsService service = new GoodsServiceImpl();
      service.insert(goods);
      request.getRequestDispatcher("GoodsListServlet").forward(request, response);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

DeleteServlet.java

package servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import service.GoodsService;
import service.impl.GoodsServiceImpl;
/**
 * 用于处理删除
 *
 */
public class DeleteServlet extends HttpServlet {
  @Override
  public void init() throws ServletException{
    super.init();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
      int id = Integer.parseInt(request.getParameter("id"));
      //2. 执行删除
      GoodsService service = new GoodsServiceImpl();
      service.delete(id);
      //3. 跳转到列表页。
      request.getRequestDispatcher("GoodsListServlet").forward(request, response);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

GoodsListPageServlet.java

package servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.valves.StuckThreadDetectionValve;
import bean.*;
import service.GoodsService;
import service.impl.GoodsServiceImpl;
/**
 * 这是用于分页显示商品列表的servlet
 *
 */
public class GoodsListPageServlet extends HttpServlet {
  @Override
  public void init() throws ServletException{
    super.init();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
      int currentPage =Integer.parseInt( request.getParameter("currentPage"));
      //2. 根据指定的页数,去获取该页的数据回来
      //List<Goods> --- list.jsp
      GoodsService service = new GoodsServiceImpl();
      PageBean<Goods> pageBean= service.findGoodsByPage(currentPage);
      request.setAttribute("pageBean", pageBean);
      //3. 跳转界面。
      request.getRequestDispatcher("list_page.jsp").forward(request, response);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

GoodsListServlet.java

package servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.Goods;
import service.GoodsService;
import service.impl.GoodsServiceImpl;
/**
 * 负责查询所有的商品信息。 然后呈现到list.jsp页面上。
 */
public class GoodsListServlet extends HttpServlet {
  @Override
  public void init() throws ServletException{
    super.init();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
      //1. 查询出来所有的商品
      GoodsService service = new GoodsServiceImpl();
      List<Goods> list = service.findAll();
      //2. 先把数据存储到作用域中
      request.setAttribute("list", list);
      //3. 跳转页面
      request.getRequestDispatcher("list.jsp").forward(request, response);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
}

SearchGoodsServlet.java

package servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.valves.StuckThreadDetectionValve;
import bean.Goods;
import service.GoodsService;
import service.impl.GoodsServiceImpl;
/**
 * Servlet implementation class SearchStudentServlet
 */
@SuppressWarnings("serial")
public class SearchGoodsServlet extends HttpServlet {
  @Override
  public void init() throws ServletException{
    super.init();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    try {
      //1. 取到了要查询的关键数据 姓名  , 性别。
      String gname=  request.getParameter("gname");
      String sprice = request.getParameter("price");
      double price=Double.parseDouble(sprice);
      //2. 找service去查询
      GoodsService service = new GoodsServiceImpl();
      List<Goods> list = service.searchGoods(gname, price);
      System.out.println("list的大小是:"+list.size());
      for (Goods goods : list) {
        System.out.println("goods="+goods);
      }
      request.setAttribute("list", list);
      //3. 跳转界面。列表界面
      request.getRequestDispatcher("list.jsp").forward(request, response);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}


目录
相关文章
|
5月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
98 5
|
5月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
225 3
|
5月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
116 1
|
5月前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
193 6
|
5月前
|
Java
Java基础学习day02-作业
本内容包含13个Java编程练习需求,涵盖变量定义、数据类型转换、运算符使用、键盘输入及条件判断等基础语法实践,适合初学者巩固Java核心基础知识。
165 5
|
5月前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
107 2
|
5月前
|
Java
Java基础学习day04-作业
本作业包含8个Java编程案例,涵盖数组的定义与遍历、求和、最值计算、去极值求平均、元素倍增、二维数组行和计算及查找指定元素等内容,旨在巩固Java基础语法与数组操作技能。
278 1
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
510 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
402 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
[回馈]ASP.NET Core MVC开发实战之商城系统(三)
302 0

热门文章

最新文章