商品信息的修改和模糊查询

文章详细描述了如何使用JavaServlet和DAO层进行商品信息的修改,包括根据ID查询商品、将信息添加到request作用域、展示修改页面、接收用户修改并执行更新操作。同时,还涵盖了商品信息的模糊查询逻辑,通过前端页面输入关键字,后端调用JDBC方法进行模糊匹配并展示查询结果。
摘要由CSDN通过智能技术生成

一、商品信息的修改的逻辑:

1.点击修改跳转到servlet,后端根据id查询到该商品的信息;

dao中的根据id查询的代码

public Goods Selectgoods(Integer gid) throws SQLException {
        Goods goods=null;
        //加载驱动
        con = JDBCUtil.getCon();
        //创建sql语句
        String sql = "select * from t_goods where gid=?";
        //执行sql语句
        ps = con.prepareStatement(sql);
        //传参
        ps.setObject(1,gid);
        //获取结果集
        rs = ps.executeQuery();
        if (rs.next()){
            goods =new Goods();
            goods.setGid(rs.getInt("gid"));
            goods.setGname(rs.getString("gname"));
            goods.setPrice(rs.getDouble("price"));
            goods.setMark(rs.getString("mark"));
        }
        //关闭数据库
        JDBCUtil.close(rs,ps,con);
        return goods;
    }

findid中服务器中的代码

package com.wang.servlet;

import com.wang.bean.Goods;
import com.wang.dao.impl.Goodsdao;
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;


@WebServlet("/udate")
public class FindGId extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //修改代码的格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        //2.获取添加商品的信息
        int gid = Integer.parseInt(req.getParameter("gid"));
        //将商品信息添加到后端
        Goodsdao goodsdao=new Goodsdao();
        Goods goods=null;
        try {
             goods = goodsdao.Selectgoods(gid);
        } catch (Exception e) {
            e.printStackTrace();
        }
        req.setAttribute("goods",goods);
        req.getRequestDispatcher("xiugai.jsp").forward(req,resp);

    }
}

2.把商品信息添加到request作用域中请求转发到信息展示页面;

3.用户根据需求修改表单中的字段,重新提交表单;

<html>
<head>
    <title>修改页面</title>
</head>
<body>
<form action="updategoods" method="post">
    修改商品编号:<input type="text" name="gid" value="${goods.gid}" readonly="readonly"><br/>
    修改商品名称:<input type="text" name="gname" value="${goods.gname}"><br/>
    修改商品价格:<input type="number" step="0.01" name="price" value="${goods.price}"><br/>
    修改商品信息:<input type="text"  name="mark" value="${goods.mark}"><br/>
    <input type="submit" value="修改商品">
</form>
</body>
</html>

4.编写后端servlet获取用户最新修订的商品信息,执行数据库的修改操作;

dao中修改的jdbc代码

public class Updatedao {
    private Connection con = null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;

    public Boolean upateGoods(Goods goods) throws SQLException {
        Boolean bool = null;
        con = JDBCUtil.getCon();
        //编写sql语句
        String sql = "update t_goods set gname=?,price=?,mark=? where gid=?";
        //获取sql语句
        ps = con.prepareStatement(sql);
        //传参
        ps.setObject(1, goods.getGname());
        ps.setObject(2, goods.getPrice());
        ps.setObject(3, goods.getMark());
        ps.setObject(4, goods.getGid());
        int i = ps.executeUpdate();
        if (i > 0) {
            bool = true;
        } else {
            bool = false;
        }
        //关闭数据
        JDBCUtil.close(ps,con);
        return bool;
    }
}

5.重新请求查询所有商品,跳转到商品信息主页;

package com.wang.servlet;

import com.wang.bean.Goods;
import com.wang.dao.impl.Updatedao;
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.sql.SQLException;

@WebServlet("/updategoods")
public class UpdateGoods extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //修改代码的格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");

        //获取修改后的数据
        Goods goods = null;
        goods = new Goods();
        goods.setGid(Integer.parseInt(req.getParameter("gid")));
        goods.setGname(req.getParameter("gname"));
        goods.setPrice(Double.parseDouble(req.getParameter("price")));
        goods.setMark(req.getParameter("mark"));
        System.out.println(goods);

        Boolean bool = null;
        //调用修改的方法
        Updatedao updatedao = new Updatedao();
        try {
            bool = updatedao.upateGoods(goods);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (bool != false) {
            req.getRequestDispatcher("GoodsSelectAll").forward(req, resp);
        } else {
            req.setAttribute("error", "修改出现了问题");
            req.getRequestDispatcher("error1.jsp").forward(req, resp);
        }
    }
}

二、商品信息的模糊查询的逻辑:

1.在zhuye.jsp设计前端页面

2.编写模糊查询的jdbc操作

//模糊查询
    public List<Goods> Selectlike(String key) throws SQLException {
        List<Goods> goodsList = new ArrayList<>();
        //加载驱动
        con = JDBCUtil.getCon();
        //创建sql语句
        String sql = "select * from t_goods where gname like concat('%',?,'%')";
        //执行sql语句
        ps = con.prepareStatement(sql);
        //传参
        ps.setObject(1,key);
        //获取结果集
        rs = ps.executeQuery();
        Goods goods=null;
        while(rs.next()){
            goods =new Goods();
            goods.setGid(rs.getInt("gid"));
            goods.setGname(rs.getString("gname"));
            goods.setPrice(rs.getDouble("price"));
            goods.setMark(rs.getString("mark"));
            goodsList.add(goods);
        }
        //关闭数据库
        JDBCUtil.close(rs,ps,con);
        return goodsList;
    }

3.在后端获取页面输入的关键字,然后调用模糊查询方法

package com.wang.servlet;

import com.wang.bean.Goods;
import com.wang.dao.impl.Goodsdao;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

@WebServlet("/seach")
public class GoodsSelectlike extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //重编代码格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        //获取模糊查询输入的数据
        String key=req.getParameter("key");
        System.out.println(key);

        List<Goods> goodsList=null;
        //调用模糊查询
        Goodsdao goodsdao=new Goodsdao();
        try {
             goodsList = goodsdao.Selectlike(key);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(goodsList!=null){
            HttpSession session=req.getSession();
            session.setAttribute("goodsList",goodsList);

            resp.sendRedirect("zhuye.jsp");
        }

    }
}

4.将查询到的信息展示到主页

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值