java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统

04-13 阅读 0评论

目录

一、前言

二、环境搭建

三、前端页面

  1. index.jsp 登陆首页

  2. shopping.jsp 商品管理页面

  3. addGoods.jsp 添加商品页面

  4. updateGoods.jsp 修改商品信息页面

四、后端

  1. 登录用户检验

  2. 商品管理处理

    2.1 GoodsServlet 代码

    2.2 BasicDao 代码

    2.3 GoodsDao 代码

    2.4 GoodsService 代码

    2.5 JdbcUtil 工具类

    2.6 数据库配置信息文件

    2.7 web.xml文件

五、goods表sql文件

六、完整代码下载

七、总结


一、前言

 在开始本教程前,首先得有一些知识储备:Servler、JSP、Mysql、JDBC。如果没有相关的知识,可以参考我有关这方面的文章:👇

相关文章

Servlet的入门Servlet的入门
JSP的使用JSP的使用
MysqlMysql
JDBCJDBC

二、环境搭建

 工欲善其事,必先利其器。我们在项目开始前,需要导入一些相关的依赖jar 包。

  1. 👉commons-dbutils-1.7.jar👈:apache提供的一个工具类,可以将数据库查询的数据封装成对象。
  2. 👉druid-1.2.9.jar👈:德鲁伊数据库连接池。
  3. 👉jsp-api.jar👈:JSP页面需要的jar包。
  4. 👉mysql-connector-j-8.0.3.jar👈:Mysql8.0的驱动包。你的Mysql是5.7需要换成5.7的驱动包
  5. 👉servlet-api.jar👈:使用Servlet需要的jar包。
  6. 👉taglibs-standard-impl-1.2.5.jar👈

    👉taglibs-standard-spec-1.2.5.jar👈:这两个是JSTL需要的jar包。

📌项目的结构截图👇

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统

三、前端页面

 这里我们前端使用的是Etui۹(・༥・´)و ̑̑

博客里边的页面。需要的小伙伴,可以去复制粘贴✅即可。我们下面给出相关的html代码(因为我们更改了里边的有些参数)。👇

1. index.jsp 登录首页

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统




  
  
  
  首页
  


S i g n I n    F o r m

🚀 我们表单的提交会直接跳转到/system/checkUserServlet。

2. shopping.jsp 商品管理页面

 该页面是登录成功之后跳转的页面。在该页面显示所有的商品。如下图:👇

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统




    
    商品展示
    
        .container {
            margin-top: 200px;
        }
        table,th,td {
            border: 1px solid black;
            text-align: center;
            padding: 5px;
        }
        th,td{
            width: 100px;
        }
    


    
没有商品了!!!
编号 名称 价格 库存 删除 修改
${goods.good_name} ${goods.price} ${goods.stock} 删除 修改
添加商品

3. addGoods.jsp 添加商品页面

 当点击shopping.jsp页面中的添加商品之后会跳转到这个页面。该页面可以添加商品,将商品信息添加到数据库。👇

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统



    添加商品页面
    
        .container {
            width: 500px;
            height: 450px;
            margin: 200px auto;
            text-align: center;
            border: 1px solid black;
        }
        input {
            padding-top: 10px;
            margin: 5px;
        }
    


商品名称:
商品价格:
商品库存:

4. updateGoods.jsp 修改商品信息页面

 在shopping.jsp页面点击修改之后会跳转到这个页面。该页面会读取该商品的信息到输入框中,用户可以修改这些信息,点击修改之后会将修改后的商品信息更新到数据库。👇

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统





    商品修改页面
    
        .container {
            width: 500px;
            height: 450px;
            margin: 200px auto;
            text-align: center;
            border: 1px solid black;
        }
        input {
            padding-top: 10px;
            margin: 5px;
        }
    



商品名称:
商品价格:
商品库存:

四、后端

1. 登录用户检验

 这里的用户检验,没有单独建一张user用户表来存储注册的用户。我们这里用户名和密码是直接写死的(用户名:admin,密码:123)。有兴趣的小伙伴可以自行添加功能。

 登录成功跳转商品管理页面(shopping.jsp)

 登录失败则返回登录失败字段,如下图:👇

java-使用Servlet+JSP+Mysql+JDBC制作简易的商品管理系统

📌CheckUserServlet代码

package com.jl.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class CheckUserServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if ("admin".equals(username) && "123".equals(password)){
            request.getRequestDispatcher("/goodsServlet").forward(request,response);
        }else {
            response.setContentType("text/html;charset=utf-8");
            PrintWriter writer = response.getWriter();
            writer.println("

登陆失败

"); writer.println("点击返回"); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }

2. 商品管理处理

2.1 GoodsServlet 代码

package com.jl.controller;
import com.jl.entity.Goods;
import com.jl.service.GoodsService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
public class GoodsServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String delete_id = request.getParameter("delete_id");
        String add = request.getParameter("add");
        String update = request.getParameter("update");
        if (delete_id!=null){
            deleteGoods(delete_id);
        }
        if (add!=null){
            String good_name = request.getParameter("good_name");
            Double good_price = Double.valueOf(request.getParameter("good_price"));
            String good_stock = request.getParameter("good_stock");
            Goods goods = new Goods(null,good_name,new BigDecimal(good_price),Integer.valueOf(good_stock));
            addGoods(goods);
        }
        if (update!=null){
            String goodId = request.getParameter("good_id");
            String good_name = request.getParameter("good_name");
            Double good_price = Double.valueOf(request.getParameter("good_price"));
            String good_stock = request.getParameter("good_stock");
            Goods goods = new Goods(Integer.valueOf(goodId), good_name, new BigDecimal(good_price), Integer.valueOf(good_stock));
            updateGoods(goods);
        }
        GoodsService goodsService = new GoodsService();
        List goodsList = goodsService.getGoodsList();
        HttpSession session = request.getSession();
        session.setAttribute("goodsList",goodsList);
        request.getRequestDispatcher("/shopping.jsp").forward(request,response);
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    // 删除
    private void deleteGoods(String good_id){
        GoodsService goodsService = new GoodsService();
        goodsService.deleteGoods(good_id);
    }
    // 添加商品
    private void addGoods(Goods goods){
        GoodsService goodsService = new GoodsService();
        goodsService.addGoods(goods);
    }
    // 修改商品
    private void updateGoods(Goods goods){
        GoodsService goodsService = new GoodsService();
        goodsService.updateGoods(goods);
    }
}

2.2 BasicDao 代码

package com.jl.dao;
import com.jl.myUtil.JdbcUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class BasicDao {
    private QueryRunner qr = new QueryRunner();
        public Boolean dmlData(String sql,Object... parameters){
            Connection connection = null;
            try {
                connection = JdbcUtil.getConnection();
                int update = qr.update(connection, sql, parameters);
                if (update>0){
                    return true;
                }else {
                    return false;
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                JdbcUtil.close(connection,null,null);
            }
        }
        public List queryMulti(String sql, Class clazz, Object... parameters){
            Connection connection = null;
            try {
                connection = JdbcUtil.getConnection();
                List query = qr.query(connection, sql, new BeanListHandler(clazz), parameters);
                return  query;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                JdbcUtil.close(connection,null,null);
            }
        }
        /**
         *
         * @param sql
         * @param clazz
         * @param parameters
         * @return 一行数据
         */
        public T querySingle(String sql, Class clazz,Object... parameters){
            Connection connection = null;
            try {
                connection = JdbcUtil.getConnection();
                return qr.query(connection, sql, new BeanHandler(clazz), parameters);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                JdbcUtil.close(connection,null,null);
            }
        }
        /**
         *
         * @param sql
         * @param parameters
         * @return 单行单列
         **/
        public T rowColumn(String sql,Object... parameters){
            Connection connection = null;
            try {
                connection = JdbcUtil.getConnection();
                T query = (T) qr.query(connection, sql, new ScalarHandler(), parameters);
                return  query;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                JdbcUtil.close(connection,null,null);
            }
        }
}

2.3 GoodsDao 代码

package com.jl.dao;
import com.jl.entity.Goods;
import java.util.List;
public class GoodsDao extends BasicDao{
    // 显示所有商品
    public List showAllData(){
        return queryMulti("SELECT * FROM `goods`",Goods.class);
    }
    // 删除数据(根据ID)
    public Boolean deleteData(String good_id){
        return dmlData("DELETE FROM `goods` WHERE `good_id`=" + good_id);
    }
    // 添加数据
    public Boolean addData(Goods goods){
        return dmlData("INSERT INTO `goods`(`good_name`,`price`,`stock`) VALUES('"+ goods.getGood_name() +"',"+ goods.getPrice() +","+ goods.getStock() +")");
    }
    // 修改数据
    public Boolean updateData(Goods goods){
        return dmlData("UPDATE `goods` SET `good_name`='"+ goods.getGood_name() +"',`price`="+ goods.getPrice() +",`stock`="+ goods.getStock() +" WHERE `good_id`="+ goods.getGood_id() +"");
    }
    // 显示单条数据
    public Goods singleData(String good_id){
        return querySingle("SELECT * FROM `goods` WHERE `good_id`=" + good_id,Goods.class);
    }
}

2.4 GoodsService 代码

package com.jl.service;
import com.jl.dao.GoodsDao;
import com.jl.entity.Goods;
import java.util.List;
public class GoodsService {
    private GoodsDao goodsDao = new GoodsDao();
    // 显示所有商品
    public List getGoodsList(){
        return goodsDao.showAllData();
    }
    // 删除商品
    public Boolean deleteGoods(String good_id){
        return goodsDao.deleteData(good_id);
    }
    // 添加商品
    public Boolean addGoods(Goods goods){
        return goodsDao.addData(goods);
    }
    // 修改商品
    public Boolean updateGoods(Goods goods){
        return goodsDao.updateData(goods);
    }
    // 根据ID查询单个数据
    public Goods queryGoodsById(String good_id){
        return goodsDao.singleData(good_id);
    }
}

2.5 JdbcUtil 工具类

package com.jl.myUtil;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcUtil {
    private static DataSource ds;
    static {
        Properties properties = new Properties();
        try {
            properties.load(JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            ds = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() {
        Connection connection = null;
        try {
            // 得到连接
            connection = ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    public static void close(Connection connection, Statement statement, ResultSet resultSet){
        if (resultSet != null){
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (connection!=null){
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (statement != null){
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

2.6 数据库配置信息文件

📌jdbc.properties

#Mysql
driverClassNam=com.mysql.cj.jdbc.Driver 
url=jdbc:mysql://localhost:3306/goodsSystem?serverTimezone=UTC
username=数据库用户名
password=数据库密码

如果Mysql为5.7版本,请将driverClassNam值改为com.mysql.jdbc.Driver 。

2.7 web.xml文件


    
        CheckUserServlet
        com.jl.controller.CheckUserServlet
    
    
        CheckUserServlet
        /checkUserServlet
    
    
        GoodsServlet
        com.jl.controller.GoodsServlet
    
    
        GoodsServlet
        /goodsServlet
    

五、goods表sql文件

CREATE DATABASE `goodsSystem`;
CREATE TABLE goods(
	`good_id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
	`good_name` VARCHAR(32) NOT NULL,
	`price` DECIMAL NOT NULL,
	`stock` INT NOT NULL
)CHARSET=utf8;
INSERT INTO `goods`(`good_name`,`price`,`stock`) VALUES('电视',2000,100);

六、完整代码下载

 为了防止有些同学粘贴的代码运行出错,下面给出完整代码下载地址:👇

📥完整代码下载地址

七、总结

 到这里,关于这个简易商品管理系统就完成了。这个系统意在为了让大家加深对Servlet、JDBC等这些有关JavaWeb技术的理解😜。大佬勿喷~~🙏

最后希望大家多多 关注+点赞+收藏^_^,你们的鼓励是我不断前进的动力!!!

感谢感谢~~~🙏🙏🙏


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]