使用javaweb项目实现对数据库的增、删、改、查操作

这篇具有很好参考价值的文章主要介绍了使用javaweb项目实现对数据库的增、删、改、查操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、什么是javaweb

 文章来源地址https://www.toymoban.com/news/detail-446235.html

JavaWeb是指使用Java语言进行Web应用程序开发的技术,可以利用Java编写一些动态网页、交互式网页、企业级应用程序等。 JavaWeb技术主要包括Servlet、JSP、JDBC、JavaBean、JNDI、EJB、Web Services等。

Servlet是JavaWeb技术的核心组件之一,它是一个运行在Web服务器上的Java程序,可以接收HTTP请求并返回HTTP响应,常用于实现Web应用程序中的控制器或者中间件。通过Servlet,我们可以处理用户提交的表单数据、查询数据库、调用其他服务等操作,并将结果返回给客户端浏览器。

JSP(JavaServer Pages)是另一个重要的JavaWeb技术,它是一种在HTML页面内嵌入Java代码的技术,能够生成动态的Web页面。JSP文件会在Web服务器上编译成Servlet,并在客户端请求时被执行。在JSP中,我们可以使用Java代码、JSTL标签库和EL表达式等来处理数据和逻辑,从而实现动态页面的渲染。

JDBC(Java Database Connectivity)是Java提供的一种基于标准SQL语言访问关系型数据库的API,可以方便地进行数据库连接、查询、更新等操作。在JavaWeb应用程序中,我们通常使用JDBC与数据库进行交互,并获取所需的数据。

JavaBean是一种特殊的Java类,它通常包含一些属性和方法,并且遵循特定的命名规范。在JavaWeb应用程序中,我们可以定义JavaBean对象来封装数据和业务逻辑,并在JSP或Servlet中使用它们来实现模型层的功能。

总之,JavaWeb技术是基于Java语言的Web应用程序开发技术,提供了丰富的API和组件,能够方便地实现动态网页、企业级应用程序等功能。

2、如何使用javaweb

项目展示:

1、数据库的创建

#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;


#创建表
create table t_user
(
	uid int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	phone varchar(11),
	address varchar(50)
);


insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');

select * from t_user where username=? and password=?
select * from t_user;
select * from t_goods


create table t_goods
(
	gid int primary key auto_increment,
	gname varchar(20),
	price double,
	mark varchar(100)
);


DROP TABLE t_goods;

TRUNCATE TABLE t_goods;


insert into t_goods(gname,price,mark) values('泡面',4.5,'够香够辣就是这个味!');
insert into t_goods(gname,price,mark) values('火腿',8.5,'肉质细腻Q弹!');
insert into t_goods(gname,price,mark) values('雪碧',3.5,'清爽冰凉随心爽!');

select * from t_goods where gid=1

update t_goods set gname='3',price=4.3,mark='5'  where gid=1

select * from t_goods;

2、分层结构

导报

使用javaweb项目实现对数据库的增、删、改、查操作

使用javaweb项目实现对数据库的增、删、改、查操作

代码部分: 

Bean层

商品实体类

package com.liu.Bean;

public class Goods {

    private Integer gid;
    private String gname;
    private Double price;
    private String mark;

    public Integer getGid() {
        return gid;
    }

    public void setGid(Integer gid) {
        this.gid = gid;
    }

    public String getGname() {
        return gname;
    }

    public void setGname(String gname) {
        this.gname = gname;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    @Override
    public String toString() {
        return "Good{" +
                "gid=" + gid +
                ", gname='" + gname + '\'' +
                ", price=" + price +
                ", mark='" + mark + '\'' +
                '}';
    }
}

用户实体类:

package com.liu.Bean;

public class User {
    private Integer uid;
    private String username;
    private String password;
    private String phone;
    private String address;

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

数据库操作部分

util层

package com.liu.util;

import java.sql.*;

public class JDBCUtil {
    static String driver = "com.mysql.cj.jdbc.Driver"; // 定义数据库驱动程序名称
    static String url = "jdbc:mysql:///mydb?useSSL=false&serverTimezone=UTC"; // 定义数据库连接URL
    static String username = "root"; // 定义数据库用户名
    static String password = "root"; // 定义数据库密码
    static Connection conn = null; // 声明Connection对象

    /**
     * 获取数据库连接对象
     * @return 数据库连接对象
     */
    public static Connection getCon(){
        try {
            Class.forName(driver); // 加载数据库驱动程序
            conn = DriverManager.getConnection(url,username,password); // 获取数据库连接对象
        } catch (Exception e) { // 处理异常
            throw new RuntimeException(e);
        }
        return conn; // 返回数据库连接对象
    }

    /**
     * 关闭ResultSet、PreparedStatement和Connection对象
     * @param rs ResultSet对象
     * @param pstm PreparedStatement对象
     * @param conn Connection对象
     * @throws SQLException SQL异常
     */
    public static void colse(ResultSet rs, PreparedStatement pstm,Connection conn) throws SQLException {
        if (rs != null) { // 判断ResultSet对象是否为null
            rs.close(); // 关闭ResultSet对象
        }
        if (pstm != null){ // 判断PreparedStatement对象是否为null
            pstm.close(); // 关闭PreparedStatement对象
        }
        if (conn != null){ // 判断Connection对象是否为null
            conn.close(); // 关闭Connection对象
        }
    }

    /**
     * 关闭PreparedStatement和Connection对象
     * @param pstm PreparedStatement对象
     * @param conn Connection对象
     * @throws SQLException SQL异常
     */
    public static void colse(PreparedStatement pstm,Connection conn) throws SQLException {
        if (pstm != null){ // 判断PreparedStatement对象是否为null
            pstm.close(); // 关闭PreparedStatement对象
        }
        if (conn != null){ // 判断Connection对象是否为null
            conn.close(); // 关闭Connection对象
        }
    }
}

dao层

package com.liu.dao.impl;

import com.liu.Bean.Goods;
import com.liu.util.JDBCUtil;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class GoodsDao {
    Goods goods = null; // 定义Goods对象
    Connection con = null; // 数据库连接对象
    PreparedStatement pstm = null; // 预编译语句对象
    ResultSet rs = null; // 结果集对象
    int twe = 0; // 操作结果

    /**
     * 查询所有商品信息
     * @return 商品列表
     */
    public List<Goods> shopping() {
        List<Goods> goodsList =new ArrayList<>(); // 创建商品列表
        try {
            con = JDBCUtil.getCon(); // 获取数据库连接
            String sql = "select  * from t_goods"; // SQL查询语句
            pstm = con.prepareStatement(sql); // 建立预编译语句
            rs = pstm.executeQuery(); // 执行查询操作
            while (rs.next()) { // 遍历结果集
                Goods goods = new Goods(); // 创建商品对象
                goods.setGid(rs.getInt("gid")); // 设置商品ID
                goods.setGname(rs.getString("gname")); // 设置商品名称
                goods.setPrice(rs.getDouble("price")); // 设置商品价格
                goods.setMark(rs.getString("mark")); // 设置商品备注
                goodsList.add(goods); // 将商品添加到列表中
            }
            for (Goods goods1 : goodsList) { // 遍历商品列表
                System.out.println(goods1); // 输出商品信息
            }

        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        } finally { // 关闭资源
            try {
                JDBCUtil.colse(rs, pstm, con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return goodsList; // 返回商品列表
    }

    /**
     * 添加商品信息
     * @param goods 商品对象
     * @return 操作结果
     */
    public int tianjia(Goods goods){
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "insert into t_goods(gname,price,mark)values(?,?,?)"; // SQL插入语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,goods.getGname()); // 设置商品名称
            pstm.setObject(2,goods.getPrice()); // 设置商品价格
            pstm.setObject(3,goods.getMark()); // 设置商品备注
            twe = pstm.executeUpdate(); // 执行插入操作
        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        }finally { // 关闭资源
            try {
                JDBCUtil.colse(pstm,con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return twe; // 返回操作结果
    }

    /**
     * 删除商品信息
     * @param id 商品ID
     * @return 操作结果
     */
    public int shanchu(int id){
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "delete from t_goods where gid = ?"; // SQL删除语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,id); // 设置商品ID
            twe = pstm.executeUpdate(); // 执行删除操作
        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        }finally { // 关闭资源
            try {
                JDBCUtil.colse(pstm,con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println(twe);
        return twe; // 返回操作结果
    }

    /**
     * 查询指定商品信息
     * @param gid 商品ID
     * @return 商品对象
     */
    public Goods xiugai1(int gid){
        Goods goods = null; // 创建商品对象
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "select  * from t_goods where gid = ?"; // SQL查询语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,gid); // 设置商品ID
            con = JDBCUtil.getCon();
            // 获取数据库连接
            rs = pstm.executeQuery(); // 执行查询操作
            if (rs.next()) { // 判断结果集是否有数据
                goods = new Goods(); // 创建商品对象
                goods.setGid(rs.getInt("gid")); // 设置商品ID
                goods.setGname(rs.getString("gname")); // 设置商品名称
                goods.setPrice(rs.getDouble("price")); // 设置商品价格
                goods.setMark(rs.getString("mark")); // 设置商品备注
            }
            System.out.println(goods); // 输出商品信息
        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        } finally { // 关闭资源
            try {
                JDBCUtil.colse(rs, pstm, con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return goods; // 返回商品对象
    }

    /**
     * 修改商品信息
     * @param goods 商品对象
     * @return 操作结果
     */
    public int xiugai2(Goods goods){
        System.out.println(goods); // 输出商品信息
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "update t_goods set gname=?,price=?,mark=? where gid = ?"; // SQL更新语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,goods.getGname()); // 设置商品名称
            pstm.setObject(2,goods.getPrice()); // 设置商品价格
            pstm.setObject(3,goods.getMark()); // 设置商品备注
            pstm.setObject(4,goods.getGid()); // 设置商品ID
            twe = pstm.executeUpdate(); // 执行更新操作
        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        }finally { // 关闭资源
            try {
                JDBCUtil.colse(pstm,con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return twe; // 返回操作结果
    }

    /**
     * 模糊查询商品信息
     * @param n 商品名称关键字
     * @return 商品列表
     */
    public List<Goods> mohuchaxun(String n){
        List<Goods> goodsList =new ArrayList<>(); // 创建商品列表
        try {
            con = JDBCUtil.getCon(); // 获取数据库连接
            String sql = "select  * from t_goods where gname like concat('%',?,'%')"; // SQL模糊查询语句
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,n); // 设置商品名称关键字
            rs = pstm.executeQuery(); // 执行查询操作
            while (rs.next()) { // 遍历结果集
                Goods goods = new Goods(); // 创建商品对象
                goods.setGid(rs.getInt("gid")); // 设置商品ID
                goods.setGname(rs.getString("gname")); // 设置商品名称
                goods.setPrice(rs.getDouble("price")); // 设置商品价格
                goods.setMark(rs.getString("mark")); // 设置商品备注
                goodsList.add(goods); // 将商品添加到列表中
            }
            for (Goods goods1 : goodsList) { // 遍历商品列表
                System.out.println(goods1); // 输出商品信息
            }

        } catch (Exception e) { // 处理异常
            e.printStackTrace();
        } finally { // 关闭资源
            try {
                JDBCUtil.colse(rs, pstm, con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return goodsList; // 返回商品列表
    }
}

package com.liu.dao.impl;

import com.liu.Bean.User;
import com.liu.dao.UserDao;
import com.liu.util.JDBCUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDaolmpl implements UserDao {
    Connection con = null; // 数据库连接对象
    User user = null; // 用户对象
    PreparedStatement pstm = null; // 预编译语句对象
    ResultSet rs = null; // 结果集对象
    int row = 0; // 操作结果

    // 实现用户登录功能
    public User Login(String username,String password){
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "select * from t_user where username = ? and password = ?"; // SQL查询语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,username); // 设置第一个占位符的值为用户名
            pstm.setObject(2,password); // 设置第二个占位符的值为密码

            rs = pstm.executeQuery(); // 执行查询操作
            if (rs.next()) { // 如果存在用户,则将查询结果存放到User对象中
                user = new User();
                user.setUid(rs.getInt("uid")); // 设置User对象的id属性
                user.setUsername(rs.getString("username")); // 设置User对象的用户名属性
                user.setPassword(rs.getString("password")); // 设置User对象的密码属性
                user.setPhone(rs.getString("phone")); // 设置User对象的电话号码属性
                user.setAddress(rs.getString("address")); // 设置User对象的地址属性

            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                JDBCUtil.colse(rs,pstm,con); // 关闭ResultSet、PreparedStatement和Connection对象
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return user; // 返回User对象
    }

    // 实现用户注册功能
    public int register(User user){
        con = JDBCUtil.getCon(); // 获取数据库连接
        String sql = "insert into t_user(username,password,phone,address)value(?,?,?,?)"; // SQL插入语句
        try {
            pstm = con.prepareStatement(sql); // 建立预编译语句
            pstm.setObject(1,user.getUsername()); // 设置第一个占位符的值为用户名
            pstm.setObject(2,user.getPassword()); // 设置第二个占位符的值为密码
            pstm.setObject(3,user.getPhone()); // 设置第三个占位符的值为电话号码
            pstm.setObject(4,user.getAddress()); // 设置第四个占位符的值为地址
            row = pstm.executeUpdate(); // 执行插入操作
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                JDBCUtil.colse(pstm,con); // 关闭PreparedStatement和Connection对象
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return row; // 返回操作结果
    }
}

dao层接口:

package com.liu.dao;

import com.liu.Bean.User;

public interface UserDao {
    User Login(String username,String password);
    int register(User user);
}

Filter层(过滤器)

package com.liu.Filter;

import com.liu.Bean.User;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter("/*")
public class Filters implements Filter {
    // 初始化方法
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("初始化.........");
    }

    // 过滤方法
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest; // 转换ServletRequest为HttpServletRequest对象
        HttpServletResponse response = (HttpServletResponse) servletResponse; // 转换ServletResponse为HttpServletResponse对象

        String servletPath = request.getServletPath(); // 获取Servlet路径
        System.out.println(servletPath);

        HttpSession session = request.getSession(); // 获取Session对象
        User user = (User)session.getAttribute("user"); // 从Session中获取User对象
        System.out.println(user);

        if (servletPath.equals("/index.jsp") || servletPath.equals("/login.jsp") || servletPath.equals("/login") ||
                servletPath.equals("/register.jsp") || servletPath.equals("/register")){ // 允许访问的页面
            filterChain.doFilter(servletRequest,servletResponse); // 放行请求
        } else if (user != null) { // 如果用户已登录,则放行请求
            filterChain.doFilter(servletRequest,servletResponse);
        }else { // 否则重定向到登录页面
            response.sendRedirect("login.jsp");
        }
    }

    // 销毁方法
    @Override
    public void destroy() {
        System.out.println("销毁.........");
    }
}

servlet层

package com.liu.servlet;

import com.liu.Bean.User;
import com.liu.dao.impl.UserDaolmpl;

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

@WebServlet("/long")
public class Login extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8"); // 设置响应编码
        request.setCharacterEncoding("utf-8"); // 设置请求编码

        response.setContentType("text/html;charset = utf-8"); // 设置响应类型

        String username = request.getParameter("username"); // 获取用户名
        String password = request.getParameter("password"); // 获取密码

        UserDaolmpl userDaolmpl = new UserDaolmpl(); // 创建UserDaoImpl对象
        User loging = userDaolmpl.Login(username,password); // 调用Login()方法进行登录校验,并返回User对象
        System.out.println(loging);

        if (loging != null){ // 如果登录成功,则将User对象存储到Session中,并重定向到商品列表Servlet
            HttpSession session = request.getSession();
            session.setAttribute("user",loging);
            request.getRequestDispatcher("ServletAllGoods").forward(request,response);
        }else { // 否则重定向到错误页面
            response.sendRedirect("error.jsp");
        }
    }
}

 该类实现了HttpServlet接口,提供了用户登录功能。在doPost()方法中,首先设置请求编码、响应编码和响应类型,然后获取用户名和密码,创建UserDaoImpl对象,并调用Login()方法进行登录校验。如果登录成功,则将User对象存储到Session中,并重定向到商品列表Servlet;否则,重定向到错误页面。在实现该Servlet时,需要注意设置请求编码、响应编码和响应类型等信息,以及处理Login()方法返回的User对象和Session对象。

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet("/mohu")
public class Mohu extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8"); // 设置响应编码
        request.setCharacterEncoding("utf-8"); // 设置请求编码

        GoodsDao goodsDao = new GoodsDao(); // 创建GoodsDao对象
        String sousuo = request.getParameter("sousuo"); // 获取查询关键字
        System.out.println(sousuo);
        List<Goods> goodsList = goodsDao.mohuchaxun(sousuo); // 调用模糊查询方法进行查询,并返回查询结果列表
        System.out.println(goodsList);
        HttpSession session = request.getSession(); // 获取Session对象
        session.setAttribute("shopping",goodsList); // 将查询结果存储到Session中
        response.sendRedirect("goods.jsp"); // 重定向到商品列表页面
    }
}

该类实现了HttpServlet接口,提供了商品模糊查询功能。在doPost()方法中,首先设置请求编码和响应编码,然后创建GoodsDao对象并获取查询关键字,调用模糊查询方法进行查询,并将查询结果存储到Session中,最后重定向到商品列表页面。在实现该Servlet时,需要注意设置请求编码、响应编码和查询关键字等信息,以及处理模糊查询方法返回的查询结果列表和Session对象。

package com.liu.servlet;

import com.liu.Bean.User;
import com.liu.dao.impl.UserDaolmpl;

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

@WebServlet("/register")
public class Register extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        User user = new User(); // 创建User对象
        String username = request.getParameter("username"); // 获取用户名
        String password = request.getParameter("password"); // 获取密码
        String phone = request.getParameter("phone"); // 获取电话号码
        String address = request.getParameter("address"); // 获取地址
        user.setUsername(username); // 设置用户名
        user.setPassword(password); // 设置密码
        user.setPhone(phone); // 设置电话号码
        user.setAddress(address); // 设置地址
        System.out.println(user);

        UserDaolmpl userDaolmpl = new UserDaolmpl();  // 创建 UserDaoImpl 对象
        int row = userDaolmpl.register(user);  // 调用 UserDaoImpl 中的 register() 方法进行注册,返回受影响行数
        System.out.println(row);  // 输出注册结果

        if (row > 0){ // 如果注册成功,则重定向到登录页面
            request.getRequestDispatcher("login.jsp").forward(request,response);
        }else{ // 否则重定向到注册页面
            response.sendRedirect("register.jsp");
        }
    }
}

该类实现了HttpServlet接口,提供了用户注册功能。在doPost()方法中,首先创建User对象并获取用户名、密码、电话号码和地址等信息,然后设置User对象属性并输出到控制台,创建UserDaoImpl对象,并调用register()方法进行注册,返回受影响行数。如果注册成功,则重定向到登录页面;否则,重定向到注册页面。在实现该Servlet时,需要注意设置User对象属性、处理register()方法返回值以及重定向到正确的页面等信息。 

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet("/ServletAllGoods")
public class ServletAllGoods extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        GoodsDao goodsDao = new GoodsDao(); // 创建GoodsDao对象
        List<Goods> shopping = goodsDao.shopping(); // 调用查找所有商品方法,返回查询结果列表
        System.out.println(shopping);
        HttpSession httpSession = request.getSession(); // 获取Session对象
        httpSession.setAttribute("shopping",shopping); // 将查询结果存储到Session中
        response.sendRedirect("goods.jsp"); // 重定向到商品列表页面
    }
}

该类实现了HttpServlet接口,提供了查找所有商品功能。在doPost()方法中,首先创建GoodsDao对象并调用查找所有商品方法,获取商品列表;然后将商品列表存储到Session对象中,最后重定向到商品列表页面。在实现该Servlet时,需要注意处理查询结果列表和Session对象等信息。 

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

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

@WebServlet("/shanchu")
public class Shanchu extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int gid = Integer.parseInt(request.getParameter("gid")); // 获取商品ID
        GoodsDao goodsDao =new GoodsDao(); // 创建GoodsDao对象
        int i = goodsDao.shanchu(gid); // 调用删除商品方法,返回受影响行数
        if (i>0){ // 如果删除成功,则重定向到商品列表Servlet
            request.getRequestDispatcher("ServletAllGoods").forward(request,response);
        }else { // 否则转发到错误页面并输出错误信息
            request.setAttribute("error_msg","删除失败!!!");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

该类实现了HttpServlet接口,提供了商品删除功能。在doPost()方法中,首先获取商品ID,创建GoodsDao对象并调用删除商品方法,返回受影响行数。如果删除成功,则重定向到商品列表Servlet;否则,转发到错误页面并输出错误信息。在实现该Servlet时,需要注意处理商品ID和删除结果等信息,以及重定向或转发到正确的页面。 

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

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

@WebServlet("/Tianjia")
public class Tianjia extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8"); // 设置响应编码
        request.setCharacterEncoding("utf-8"); // 设置请求编码
        response.setContentType("text/html;charset = utf-8"); // 设置响应类型

        Goods goods = new Goods(); // 创建Goods对象
        goods.setGname(request.getParameter("gname")); // 获取商品名称并设置到Goods对象中
        goods.setPrice(Double.parseDouble(request.getParameter("price"))); // 获取商品价格并设置到Goods对象中
        goods.setMark(request.getParameter("mark")); // 获取商品描述并设置到Goods对象中

        GoodsDao goodsDao = new GoodsDao(); // 创建GoodsDao对象
        int row = goodsDao.tianjia(goods); // 调用添加商品方法,返回受影响行数

        if (row>0){ // 如果添加成功,则重定向到商品列表Servlet
            request.getRequestDispatcher("ServletAllGoods").forward(request,response);
        }else{ // 否则转发到错误页面并输出错误信息
            request.setAttribute("error_msg","添加失败!!!");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

该类实现了HttpServlet接口,提供了商品添加功能。在doPost()方法中,首先设置响应编码、请求编码和响应类型,然后创建Goods对象并获取商品名称、价格和描述信息,并将这些信息设置到Goods对象中。接着创建GoodsDao对象并调用添加商品方法,返回受影响行数。如果添加成功,则重定向到商品列表Servlet;否则,转发到错误页面并输出错误信息。在实现该Servlet时,需要注意处理请求参数、添加结果等信息,以及重定向或转发到正确的页面。 

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

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

@WebServlet("/xiugai")
public class Xiugai extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8"); // 设置响应编码
        request.setCharacterEncoding("utf-8"); // 设置请求编码
        int gid = Integer.parseInt(request.getParameter("gid")); // 获取商品ID并转换为整型

        GoodsDao goodsDao = new GoodsDao(); // 创建GoodsDao对象
        Goods goods = goodsDao.xiugai1(gid); // 调用查找商品方法,返回查询结果对象

        if (goods!=null){ // 如果查询结果不为空,则将查询结果存储到request中,并转发到修改页面
            request.setAttribute("goods",goods);
            request.getRequestDispatcher("xiugai.jsp").forward(request,response);
        }else { // 否则转发到错误页面并输出错误信息
            request.setAttribute("error_msg","修改错误!!!");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

该类实现了HttpServlet接口,提供了查找商品信息功能。在doPost()方法中,首先设置响应编码、请求编码和获取商品ID,并将商品ID转换为整型。然后创建GoodsDao对象并调用查找商品方法,返回查询结果对象。如果查询结果不为空,则将查询结果存储到request中,并转发到修改页面;否则,转发到错误页面并输出错误信息。在实现该Servlet时,需要注意处理请求参数、查询结果等信息,以及重定向或转发到正确的页面。 

package com.liu.servlet;

import com.liu.Bean.Goods;
import com.liu.dao.impl.GoodsDao;

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

@WebServlet("/xiugai2")
public class Xiugai2 extends HttpServlet {
    // 处理GET请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    // 处理POST请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8"); // 设置响应编码
        request.setCharacterEncoding("utf-8"); // 设置请求编码

        Goods goods = new Goods(); // 创建Goods对象
        goods.setGid(Integer.parseInt(request.getParameter("gid"))); // 获取商品ID并设置到Goods对象中
        goods.setGname(request.getParameter("gname")); // 获取商品名称并设置到Goods对象中
        goods.setPrice(Double.parseDouble(request.getParameter("price"))); // 获取商品价格并设置到Goods对象中
        goods.setMark(request.getParameter("mark")); // 获取商品描述并设置到Goods对象中

        GoodsDao goodsDao = new GoodsDao(); // 创建GoodsDao对象
        int row = goodsDao.xiugai2(goods); // 调用修改商品方法,返回受影响行数

        if (row > 0 ){ // 如果修改成功,则重定向到商品列表Servlet
            request.getRequestDispatcher("ServletAllGoods").forward(request,response);
        }else { // 否则转发到错误页面并输出错误信息
            request.setAttribute("error_msg","修改错误!!!");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}

该类实现了HttpServlet接口,提供了商品修改功能。在doPost()方法中,首先设置响应编码、请求编码,然后创建Goods对象并获取商品ID、名称、价格和描述信息,并将这些信息设置到Goods对象中。接着创建GoodsDao对象并调用修改商品方法,返回受影响行数。如果修改成功,则重定向到商品列表Servlet;否则,转发到错误页面并输出错误信息。在实现该Servlet时,需要注意处理请求参数、修改结果等信息,以及重定向或转发到正确的页面。

页面代码

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>com.liu.servlet.Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
</web-app>

页面文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>欢迎光临</title>
</head>
<body>
    <h2>${error_msg}</h2>
    <a href="login.jsp">返回重试</a>
</body>
</html>
<%@ page import="com.liu.Bean.Goods" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: pai'meng
  Date: 2023/2/22
  Time: 11:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri ="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>购物</title>
</head>
<body>
    <h2>欢迎来自${user.address}的${user.username}访问主页</h2>

        <table>
            <form action="mohu" method="get">
                <input type="text" name="sousuo" value="" >
                <input type="submit" name="搜索2" value="搜索">
            </form>
            <thead>
                <tr>
                    <th>商品编号</th>
                    <th>商品名字</th>
                    <th>商品价格</th>
                    <th>商品介绍</th>
                </tr>
            </thead>
            <tbody id="list">
            <c:forEach items="${shopping}" var="sho">
                <tr>
                    <td>${sho.gid}</td>
                    <td>${sho.gname}</td>
                    <td>${sho.price}</td>
                    <td>${sho.mark}</td>
                    <td><a href="shanchu?gid=${sho.gid}">删除</a></td>
                    <td><a href="xiugai?gid=${sho.gid}">修改</a></td>
                </tr>

            </c:forEach>
            <a href="tianjia.jsp">添加</a>
            </tbody>
</table>
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>主页</title>
  </head>
  <body>
  <h2>欢迎来到主页</h2>
  <a href="login.jsp">登录</a>
  <a href="register.jsp">注册</a>
  </body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
    <form action="login" method="get">
        请输入账号:<input type="text" name="username"><br>
        请输入密码:<input type="password" name="password"><br>

        <input type="submit" value="确定">
        <a href="register.jsp">没有账户?点击注册</a>

    </form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
</head>
<body>
<form action="register" method="post">
    请输入注册账号:<input type="text" name="username"><br>
    请输入注册密码:<input type="password" name="password"><br>
    请输入电话:<input type="text" name="phone"><br>
    请输入地址:<input type="text" name="address"><br>
    <input type="submit" value="确定">
    <a href="login.jsp">已有账号?点击登录</a>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加商品</title>
</head>
<body>
<form action="Tianjia" method="post">
  请输入商品名称:<input type="text" name="gname"><br>
  请输入商品价格:<input type="number" name="price"><br>
  请输入商品介绍:<input type="text" name="mark"><br>
  <input type="submit" value="添加">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>修改页面</title>
</head>
<body>
    <form action="xiugai2" method="post">
<%--        <c:forEach items="goods" var="goods"></c:forEach>--%>
        商品编号:<input type="text" name="gid" value="${goods.gid}" placeholder="商品编号" readonly = readonly><br>
        商品名称:<input type="text" name="gname" value="${goods.gname}" placeholder="商品名称"><br>
        商品价格:<input type="number" name="price" value="${goods.price}" placeholder="商品价格"><br>
        商品介绍:<input type="text" name="mark" value="${goods.mark}" placeholder="商品介绍"><br>
        <input type="submit" value="确定">
    </form>
</body>
</html>

效果展示 

使用javaweb项目实现对数据库的增、删、改、查操作

 

到了这里,关于使用javaweb项目实现对数据库的增、删、改、查操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb项目部署到服务器并连接本地数据库(超详细!)

    目录 一、下载XShell、Xftp工具 二 、建立服务器连接 三、服务器环境配置 四、打包web项目传输入服务器 五、服务器Web项目连接本地数据库 个人博客欢迎访问 --- 猿客栈 在XShell官网下载两个工具,用来操作服务器的Linux系统 输入服务器的主机名,验证用户和密码,默认用户名

    2024年02月05日
    浏览(47)
  • idea写一个连接MySQL数据库的javaweb项目(基础向)

            一个完整javaweb项目大致可以分为这三个层:         显示层、业务层、数据访问层(DAO层) 显示层: 显示在客户端的html,jsp等网页文件 和 处理来自网页提交数据(controller) 业务层: 是显示层和数据访问层之间的桥梁,通过显示层的需求进行不同的数据访问 数

    2024年02月05日
    浏览(49)
  • Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

    数据库操作 MySQL数据库+pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 ORM可以做的事: 1、创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】 2、操作表中的数据(不用写SQL语句)。 1、自己创建数据库 1)启动MySQL服务 2)自带

    2024年02月14日
    浏览(63)
  • 使用javaweb实现登录注册页面,并且对功能和业务进行分层 用户登录成功跳转到主页并展示数据库的商品的信息

    一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。 这里以一个最常用的用户登录

    2024年02月03日
    浏览(65)
  • 基于Javaweb的超市管理系统毕业设计项目源码+数据库+详细设计文档

    介绍 大学校内超市管理系统,实现收银台,商品分类管理,商品库存管理,商品管理,营收统计等功能 完整代码下载地址:基于Javaweb的超市管理系统 软件架构 使用说明 项目导入eclipse 配置tomcat+jdk sql 导入 修改config 下配置文件 本系统是基于B/S架构的武汉理工大学校内超市

    2024年02月09日
    浏览(53)
  • node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

    大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:node koa 数据库:mysql koa是一个现代的Node.js框架,可以用来构建Web应用程序。 Vue.js 是一款用于构建用户界面的开源JavaScript框架。Vue.js 3 是 Vu

    2024年02月20日
    浏览(42)
  • 基于JavaWeb实现的学生选课系统(源码+数据库)

    本项目是一套基于JavaWeb实现的学生选课系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse 确保可以运行! 该系统功能完善、界面美观、

    2024年02月08日
    浏览(76)
  • JavaWeb05(删除&增加&修改功能实现&连接数据库)

    目录 一.实现删除功能 1.1 url如何传参? xx.do?参数=参数值参数名=参数值 1.2 servlet如何拿对应值? //根据参数名拿到对应的参数值  String str = req.getParameter(\\\"参数名\\\") 1.3 如何询问? οnclick=\\\"return confirm(\\\'确定要删除嘛?\\\')\\\" 1.4 代码分析 1.4.1 前端传参 删除  1.4.2 后台业务处理 二.实

    2024年02月02日
    浏览(49)
  • JavaWeb实现简易的注册登录功能(与数据库连接)

    一、创建数据库表连接 这里我们创建一个数据库名为db_user,创建库的使用可视化工具很简单就不细说了,下面sql代码块是我们创建一个简易用户表为了方便我们后续进行登录注册操作。 下面就是建好的表: 1、建一个与数据库连接的file文件:db.properties 二、创建前端页面 1、

    2024年01月19日
    浏览(49)
  • JavaWeb04(登录&绑值&模糊查询&功能实现&连接数据库)

    目录 一.实现登录功能  2.2 制作简易验证码 2.3 完成登录验证 2.4 登录实现 ①连接字符串 private static final String URL=\\\"jdbc:oracle:thin:@localhost:1521:orcl\\\"; ②加载驱动  OracleDriver private static final String URL=\\\"jdbc:oracle:thin:@localhost:1521:orcl\\\";      二.实现表格版的绑定数据 2.1 效果预览 2.2 代

    2024年02月02日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包