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

本文涉及的产品
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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);
  }
}


目录
相关文章
|
8天前
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
24 3
|
11天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
27 2
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
127 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
33 1
|
2月前
|
域名解析 分布式计算 网络协议
java遍历hdfs路径信息,报错EOFException
java遍历hdfs路径信息,报错EOFException
37 3
|
2月前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
2月前
|
Java 编译器 测试技术
|
3月前
|
前端开发 Java
Java高手都在用的秘籍:自定义异常,让错误信息说话!
Java高手都在用的秘籍:自定义异常,让错误信息说话!
138 1
|
3月前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
3月前
|
供应链 前端开发 Java
服装库存管理系统 Mybatis+Layui+MVC+JSP【完整功能介绍+实现详情+源码】
该博客文章介绍了一个使用Mybatis、Layui、MVC和JSP技术栈开发的服装库存管理系统,包括注册登录、权限管理、用户和货号管理、库存管理等功能,并提供了源码下载链接。
服装库存管理系统 Mybatis+Layui+MVC+JSP【完整功能介绍+实现详情+源码】