JavaEE 单元测试三 使用struts框架查询删除图书

1.创建数据库

    首先创建好mysql数据库school,在数据库school中创建t_book表

use school;

DROP TABLE IF EXISTS `t_book`;
CREATE TABLE `t_book`  (
  `bookid` int(11) NOT NULL AUTO_INCREMENT,
  `bookname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `bookprice` decimal(10, 2) NULL DEFAULT NULL,
  PRIMARY KEY (`bookid`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
 

2.在idea中创建一个web项目,并配置好struts框架

       配置框架操作:配置Struts框架 

3.在配置好框架的项目中创建对应的文件

        3.1 创建JDBCutil.java文件用于连接数据库

package stu.lwhao.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author : Luowenhao221
 * @date : 2024/5/7 下午7:28
 * @Project : JavaEE_Project_struts2
 */
public class JDBCUtil {
    private static final String DB_URL = "jdbc:mysql://localhost:3306/school";
    private static final String DB_USER = "自己用户名";
    private static final String DB_PASSWORD = "自己密码";

    public static Connection getConnection() {
        Connection connection = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static void closeConnection(Connection connection) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

        3.2在bean软件包中创建Book.java

package stu.lwhao.bean;

/**
 * @author : Luowenhao221
 * @date : 2024/5/7 下午5:38
 * @Project : JavaEE_Project_strtus2
 */
import com.opensymphony.xwork2.ActionSupport;

public class Book extends ActionSupport {
    private Integer bookid;
    private String bookname;
    private double bookprice;

    public Integer getBookid() {
        return bookid;
    }

    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public double getBookprice() {
        return bookprice;
    }

    public void setBookprice(double bookprice) {
        this.bookprice = bookprice;
    }
}

 3.3 在Action软件包中创建BookSerchAction.java 用于图书查询的操作

package stu.lwhao.action;

import stu.lwhao.bean.Book;
import stu.lwhao.util.JDBCUtil;
import com.opensymphony.xwork2.ActionSupport;


import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
 * @author : Luowenhao221
 * @date : 2024/5/7 下午7:35
 * @Project : JavaEE_Project_struts2
 */

/**
 * action类,用于处理图书搜索请求
 */
public class BookSearchAction extends ActionSupport {
    private String searchQuery;// 搜索关键字
    private List<Book> books;// 查询到的图书列表

    public String execute() {
        books = new ArrayList<>();
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        // 通过JDBC连接数据库,查询图书信息
        try {
            connection = JDBCUtil.getConnection();
            String sql = "SELECT * FROM t_book WHERE bookname LIKE ?";// 模糊查询
            statement = connection.prepareStatement(sql);
            statement.setString(1, "%" + searchQuery + "%");
            resultSet = statement.executeQuery();

            while (resultSet.next()) {
                Book book = new Book();
                book.setBookid(resultSet.getInt("bookid"));
                book.setBookname(resultSet.getString("bookname"));
                book.setBookprice(resultSet.getDouble("bookprice"));
                books.add(book);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.closeConnection(connection);
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

        return SUCCESS;// 返回成功
    }



    public String getSearchQuery() {
        return searchQuery;// 获取搜索关键字
    }

    public void setSearchQuery(String searchQuery) {
        this.searchQuery = searchQuery;// 设置搜索关键字
    }

    public List<Book> getBooks() {
        return books;// 获取查询到的图书列表
    }
}

3.4 在Action软件包中创建BookDeleteActon.java 用于删除图书操作

package stu.lwhao.action;

import com.opensymphony.xwork2.ActionSupport;
import stu.lwhao.bean.Book;
import stu.lwhao.util.JDBCUtil;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
 * @author : Luowenhao221
 * @date : 2024/5/7 下午8:13
 * @Project : JavaEE_Project_struts2
 */

/**
 * action类,用于处理图书删除请求
 */
public class BookDeleteAction extends ActionSupport{
    private Integer bookid;// 要删除的图书id
    private List<Book> books;// 查询到的图书列表

    public String execute() {
        books = new ArrayList<>();
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        // 通过JDBC连接数据库,查询图书信息
        try {
            connection = JDBCUtil.getConnection();
            String sql = "DELETE FROM t_book WHERE bookid = ?";// 删除图书
            statement = connection.prepareStatement(sql);
            statement.setInt(1, bookid);
            statement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();

    }
    return SUCCESS;
}
    public Integer getBookid() {
        return bookid;
    }

    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }

    public List<Book> getBooks() {
        return books;
    }

    public void setBooks(List<Book> books) {
        this.books = books;
    }
}


此时基本的查询和删除操作的Java类已经完成

只需下一步的jsp页面实现和配置即可

4.配置action

   在struts.xml中配置操作的对应action

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="book" extends="struts-default">
        <action name="bookSearch" class="stu.lwhao.action.BookSearchAction">
            <result name="success">/bookSearchResults.jsp</result>
        </action>
        <action name="bookDelete" class="stu.lwhao.action.BookDeleteAction">
            <result name="success" type="redirect">/bookSearchResults.jsp</result>
        </action>
    </package>
</struts>

5. Jsp页面实现

在webapp目录下创建jsp文件  bookSearchResults.jsp    

用于实现web前端的查询和删除

<%--
  Created by IntelliJ IDEA.
  Author : luowenhao221
  Date: 2024/5/7
  Time: 下午5:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
    <title>图书查询结果</title>
    <meta charset="UTF-8">
</head>
<body>
<h1>图书查询结果</h1>

<!-- 查询表单和按钮 -->
<s:form action="bookSearch">
    <s:textfield name="searchQuery" label="搜索图书" />
    <s:submit value="查询" />
</s:form>

<s:if test="books.size() > 0">
    <table>
        <tr>
            <th>ID</th>
            <th>书名</th>
            <th>价格</th>
            <th>操作</th>
        </tr>
        <s:iterator value="books">
            <tr>
                <td><s:property value="bookid"/></td>
                <td><s:property value="bookname"/></td>
                <td><s:property value="bookprice"/></td>
                <td>
                <%--   删除--%>
                    <s:url var="deleteURL" action="bookDelete">
                        <s:param name="bookid" value="%{bookid}"/>
                    </s:url>
                    <s:a href="%{deleteURL}">删除</s:a>
                </td>
            </tr>
        </s:iterator>
    </table>
</s:if>
<s:else>
    <p>没有查询结果</p>
</s:else>
</body>
</html>
此时已经该实验已经完成 ,只需在tomcat中部署运行 

注意运行后需在url栏中加入  /bookSearch即可转到页面    

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值