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);
  }
}


目录
相关文章
|
11月前
|
监控 中间件
如何在 Vuex 中实现类似 Pinia 中间件的功能?
如何在 Vuex 中实现类似 Pinia 中间件的功能?
344 71
|
11月前
|
JavaScript 前端开发 中间件
除了 Pinia,还有哪些状态管理库可以实现类似的中间件功能?
除了 Pinia,还有哪些状态管理库可以实现类似的中间件功能?
401 73
|
缓存 中间件
除了在 action 执行前后记录状态,中间件还可以实现哪些功能?
除了在 action 执行前后记录状态,中间件还可以实现哪些功能?
291 57
|
数据采集 存储 Java
Java爬虫获取微店店铺所有商品API接口设计与实现
本文介绍如何使用Java设计并实现一个爬虫程序,以获取微店店铺的所有商品信息。通过HttpClient发送HTTP请求,Jsoup解析HTML页面,提取商品名称、价格、图片链接等数据,并将其存储到本地文件或数据库中。文中详细描述了爬虫的设计思路、代码实现及注意事项,包括反爬虫机制、数据合法性和性能优化。此方法可帮助商家了解竞争对手,为消费者提供更全面的商品比较。
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
372 10
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
487 63
|
前端开发 Java
【案例+源码】详解MVC框架模式及其应用
【案例+源码】详解MVC框架模式及其应用
1321 0
|
设计模式 开发框架 前端开发
MVC 模式在 C# 中的应用
MVC(Model-View-Controller)模式是广泛应用于Web应用程序开发的设计模式,将应用分为模型(存储数据及逻辑)、视图(展示数据给用户)和控制器(处理用户输入并控制模型与视图交互)三部分,有助于管理复杂应用并提高代码可读性和维护性。在C#中,ASP.NET MVC框架常用于构建基于MVC模式的Web应用,通过定义模型、控制器和视图,实现结构清晰且易维护的应用程序。
345 2
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统

热门文章

最新文章