tomcat对数据库信息对进行添加操作和修改操作

先在接口方法中添加相应接口方法:

//添加新产品
    @Insert("insert into db.brand values(null,#{brandName},#{companyName},#{ordered},#{description},#{status})")
    void addBrand(brand brand);

在service中添加对应的方法:

public void addBrand(brand brand){
String resource = "mybatis-config.xml";
            InputStream inputStream = null;
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        brandMapper brandMapper = sqlSession.getMapper(brandMapper.class);
        brandMapper.addBrand(brand);
        sqlSession.commit();
        sqlSession.close();
    }

然后开始写添加新产品的信息jsp

<%--
  Created by IntelliJ IDEA.
  User: quwenhao
  Date: 2023/12/28
  Time: 19:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加品牌


添加品牌

品牌名称:
企业名称:
排序:
描述信息:
状态:禁用 启用

完成后设置表单提交给添加的servlet,下面开始写添加的servlet

package org.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import org.example.service.brandService;
import org.example.pojo.brand;

@WebServlet("/brandAddService")
public class brandAddService extends HttpServlet {
    private brandService brandService=new brandService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //处理post类型乱码问题
        request.setCharacterEncoding("utf-8");

        String brandName = request.getParameter("brandName");
        String companyName = request.getParameter("companyName");
        String ordered = request.getParameter("ordered");
        String description = request.getParameter("description");
        String status = request.getParameter("status");

        //封装成brand对象
        brand brand=new brand();
        brand.setBrandName(brandName);
        brand.setCompanyName(companyName);
        brand.setOrdered(Integer.parseInt(ordered));
        brand.setDescription(description);
        brand.setStatus(Integer.parseInt(status));

        //调用Service添加方法
        brandService.addBrand(brand);

        //转发到查询所有
        request.getRequestDispatcher("/brandSelectAllService").forward(request,response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

在brand.jsp中我们通过设置了新增按钮来添加信息,
。我们可以运用javaScript获取其id为其添加跳转功能

在body标签末尾添加下面代码,添加跳转功能。

下面是修改操作:想对特定某条信息进行修改,需要先根据id查询到特定的信息,然后在进行修改。

接口方法:

//根据id查询
    @Select("select * from db.brand where id=#{id}")
    @ResultMap("brandResultMap")
    brand selectByIdBrand(int id);

    //根据id,修改特定的产品的信息
    @Update("update db.brand set brand_Name=#{brandName},company_name=#{companyName},ordered=#{ordered},description=#{description},status=#{status} where id=#{id}")
    void update(brand brand);

service:

public brand brandSelectById(int id){
String resource = "mybatis-config.xml";
            InputStream inputStream = null;
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        brandMapper brandMapper = sqlSession.getMapper(brandMapper.class);
        brand brand = brandMapper.selectByIdBrand(id);

        sqlSession.close();
        return brand;
    }

    public void Update(brand brand){
String resource = "mybatis-config.xml";
            InputStream inputStream = null;
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        brandMapper brandMapper = sqlSession.getMapper(brandMapper.class);
        brandMapper.update(brand);
        sqlSession.commit();
        sqlSession.close();
    }

然后写根据id查询到的特定产品的详细信息的jsp:

<%--
  Created by IntelliJ IDEA.
  User: quwenhao
  Date: 2023/12/28
  Time: 20:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>


    修改品牌


修改品牌

<%-- 隐藏域,提交id--%> 品牌名称:
企业名称:
排序:
描述信息:
状态: 禁用 启用
禁用 启用

然后写的是特定产品的详细信息的Servlet:

package org.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

import org.example.pojo.brand;
import org.example.service.brandService;

@WebServlet("/selectByIdService")
public class selectByIdService extends HttpServlet {

    private brandService brandService=new brandService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.接收id
        String id = request.getParameter("id");
        //2.service查询
        brand brand = brandService.brandSelectById(Integer.parseInt(id));
        //3.存储到request中
        request.setAttribute("brand",brand);
        //4.转发
        request.getRequestDispatcher("/selectById.jsp").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

我们想调用该servlet根据id查询详细信息,需要先知道该信息的id,所以在跳转到该servlet时应把id传过来。所以brand.jsp中修改信息的跳转链接应该这样写,将#改为下面的链接。

 修改

这样我们在打开修改页面的时候,该产品原本的信息会自动填写在文本框中。

修改信息完后,会将该表单提交到updateServlet中,执行修改操作:

package org.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import org.example.pojo.brand;
import org.example.service.brandService;

@WebServlet("/updateServlet")
public class updateServlet extends HttpServlet {
    brandService brandService=new brandService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String brandName = request.getParameter("brandName");
        String companyName = request.getParameter("companyName");
        String ordered = request.getParameter("ordered");
        String description = request.getParameter("description");
        String status = request.getParameter("status");
        String id=request.getParameter("id");

        brand brand=new brand();
        brand.setBrandName(brandName);
        brand.setCompanyName(companyName);
        brand.setOrdered(Integer.parseInt(ordered));
        brand.setDescription(description);
        brand.setStatus(Integer.parseInt(status));
        brand.setId(Integer.parseInt(id));

        brandService.Update(brand);

        request.getRequestDispatcher("/brandSelectAllService").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

这样就可以完成修改操作了

你可能感兴趣的:(数据库,java,开发语言)