IDEA+Java+JSP+Mysql+Tomcat realizes Web school textbook management system

content

1. System introduction

1. Development environment

2. Technical selection

3. System function

4. Database file

5. System screenshot

2. System display

1. Log in to the system

2. System home page

3. Add teaching materials

4. Modify the textbook

3. Part of the code 

AdminDaoImpl

MaterialDaoImpl

material-add.jsp

material-add-do.jsp

material-update.jsp

material-update-do.jsp

4. Other

1. More systems

Java+JSP system series implementation

Java+Servlet system series implementation

Java+SSM system series implementation

Java+SSH system series implementation

Java+Springboot system series implementation

2. Source code download

3. Run the project

4. Remarks

5. Support Bloggers


1. System introduction

1. Development environment

Development tool: IDEA2018

JDK version: Jdk1.8

Mysql version: 8.0.13

2. Technical selection

Java+Jsp+Mysql

3. System function

1. Log in to the system;

2. The administrator's addition, deletion, modification and inspection of school textbooks.

4. Database file

/*
 Navicat Premium Data Transfer

 Source Server         : MYSQL
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : localhost:3306
 Source Schema         : jsp_teach_material

 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001

 Date: 03/03/2022 17:04:24
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES ('admin', 'admin');

-- ----------------------------
-- Table structure for material
-- ----------------------------
DROP TABLE IF EXISTS `material`;
CREATE TABLE `material`  (
  `id` int(11) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `author` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `publish` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of material
-- ----------------------------
INSERT INTO `material` VALUES (1001, '语文', '张三', '人民日报出版社', '900');
INSERT INTO `material` VALUES (1002, '数学', '李四', '人民日报出版社', '1000');
INSERT INTO `material` VALUES (1003, '英语', '王五', '人民日报出版社', '1500');
INSERT INTO `material` VALUES (1004, '赵六', '黄七', '人民日报出版社', '2000');

SET FOREIGN_KEY_CHECKS = 1;

5. System screenshot

2. System display

1. Log in to the system

2. System home page

3. Add teaching materials

4. Modify the textbook

 

3. Part of the code 

AdminDaoImpl

package com.sjsq.dao.impl;

import com.sjsq.dao.AdminDao;
import com.sjsq.utils.DBUtil;
import com.sjsq.entity.Admin;

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

/**
 * @author: shuijianshiqing
 * @date: 2022-03-01
 * @description: 登录系统实现
 */
public class AdminDaoImpl implements AdminDao {

    /**
     * 登录系统
     * @param admin
     * @return
     */
    @Override
    public Admin login(Admin admin) {
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 1.获取数据库连接
            con = DBUtil.getConnection();
            // 2.写sql
            String sql = "select * from admin where username = ? and password = ?";
            // 3.预编译
            ps = con.prepareStatement(sql);
            // 4.设置值
            ps.setObject(1, admin.getUsername());
            ps.setObject(2, admin.getPassword());
            rs = ps.executeQuery();
            Admin adminLogin = null;
            if (rs.next()) {
                adminLogin = new Admin();
                // 从数据库中获取值到实体类的setter方法中
                adminLogin.setUsername(rs.getString("username"));
                adminLogin.setPassword(rs.getString("password"));

                // 返回的是你查询出来的完整的对象
                return adminLogin;

            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭资源,避免出现异常
            DBUtil.close(con, ps, rs);
        }
        return null;
    }

}

MaterialDaoImpl

package com.sjsq.dao.impl;

import com.sjsq.dao.MaterialDao;
import com.sjsq.entity.Material;
import com.sjsq.utils.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author: shuijianshiqing
 * @date: 2022-03-03
 * @description:
 */
public class MaterialDaoImpl implements MaterialDao {
    @Override
    public List<Material> selectAll(String sql, Object[] arr) {
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            // 1.连接数据库
            con = DBUtil.getConnection();
            // 2.预编译
            ps = con.prepareStatement(sql);
            if (arr != null) {
                for (int i = 0; i < arr.length; i++) {
                    // 传入sql的参数,向上转型,某个栏位的查询
                    ps.setObject(i + 1, arr[i]);
                }
            }
            // 3.执行sql
            rs = ps.executeQuery();
            // 4.保存查询出来的数据到list
            List<Material> list = new ArrayList<>();
            while (rs.next()) {

                Material material = new Material();

                material.setId(rs.getInt("id"));
                material.setName(rs.getString("name"));
                material.setAuthor(rs.getString("author"));
                material.setPublish(rs.getString("publish"));
                material.setNumberr(rs.getString("number"));

                list.add(material);
            }
            return list;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭链接,避免数据库连接过多
            DBUtil.close(con, ps, rs);
        }
        return null;
    }

    @Override
    public Material selectMaterial(Integer id) {
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 1.连接数据库
            con = DBUtil.getConnection();
            // 2.预编译
            String sql = "select * from material where id = ?";
            ps = con.prepareStatement(sql);
            ps.setInt(1, id);
            // 3.执行sql
            rs = ps.executeQuery();
            while (rs.next()) {
                Material material = new Material();

                material.setId(rs.getInt("id"));
                material.setName(rs.getString("name"));
                material.setAuthor(rs.getString("author"));
                material.setPublish(rs.getString("publish"));
                material.setNumberr(rs.getString("number"));

                return material;
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭资源,避免出现异常
            DBUtil.close(con, ps, rs);
        }
        return null;
    }

    @Override
    public boolean addMaterial(Material material) {
        String sql = "insert into material values (?,?,?,?,?)";
        List<Object> list = new ArrayList<Object>();

        list.add(material.getId());
        list.add(material.getName());
        list.add(material.getAuthor());
        list.add(material.getPublish());
        list.add(material.getNumber());

        boolean flag = DBUtil.addUpdateDelete(sql, list.toArray());
        if (flag) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean updateMaterial(Material material) {
        String sql = "update material set name=?,author=?,publish=?,number=? where id=?";
        List<Object> list = new ArrayList<Object>();

        list.add(material.getName());
        list.add(material.getAuthor());
        list.add(material.getPublish());
        list.add(material.getNumber());
        // 注意id在最后面
        list.add(material.getId());

        boolean flag = DBUtil.addUpdateDelete(sql, list.toArray());
        if (flag) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean deleteMaterial(Integer id) {
        String sql = "delete from material where id=?";
        List<Object> list = new ArrayList<Object>();

        list.add(id);

        boolean flag = DBUtil.addUpdateDelete(sql, list.toArray());
        if (flag) {
            return true;
        } else {
            return false;
        }
    }
}

material-add.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>新增教材</title>
    <link rel="stylesheet" type="text/css" href="css/common.css">
</head>
<body>
<%-- 头部 --%>
<jsp:include page="top.jsp"/>

<h1>新增教材</h1>
<hr/>

<div id="before">
    <a href="javascript: window.history.go(-1)">返回上一级</a>
</div>
</br>

<form action="material-add-do.jsp" method="post" name="addForm">
    <div>
        <tr>
            <label>教材编号:</label>
            <input type="text" name="id" id="id" placeholder="请输入教材编号">
        </tr>
    </div>
    <div>
        <tr>
            <label>教材名称:</label>
            <input type="text" name="name" id="name" placeholder="请输入教材名称">
        </tr>
    </div>
    <div>
        <tr>
            <label>教材作者:</label>
            <input type="text" name="author" id="author" placeholder="请输入教材作者">
        </tr>
    </div>

    <div>
        <tr>
            <label>出版社名:</label>
            <input type="text" name="publish" id="publish" placeholder="请输入出版社名">
        </tr>
    </div>

    <div>
        <tr>
            <label>教材数量:</label>
            <input type="text" name="number" id="number" placeholder="请输入教材数量">
        </tr>
    </div>

    <br>
    <div id="submit">
        <tr>
            <button type="submit" onclick="return checkForm()">添加</button>
            <button type="reset">重置</button>

        </tr>
    </div>
</form>

<script type="text/javascript">
    function checkForm() {
        var id = addForm.id.value;
        var name = addForm.name.value;
        // 教材编号和教材名称不能为空
        if (id == "" || id == null) {
            alert("请输入教材编号");
            addForm.id.focus();
            return false;
        } else if (name == "" || name == null) {
            alert("请输入教材名称");
            addForm.name.focus();
            return false;
        }
        return true;
    }
</script>

<%-- 底部 --%>
<jsp:include page="bottom.jsp"/>
</body>
</html>

material-add-do.jsp

<%@ page import="com.sjsq.entity.Material" %>
<%@ page import="com.sjsq.service.MaterialService" %>
<%@ page import="com.sjsq.service.impl.MaterialServiceImpl" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>新增教材</title>
</head>
<body>
<%
    // 设置获取注册时的编码为UTF-8
    request.setCharacterEncoding("UTF-8");

    //获取teacher-add.jsp页面提交的账号和密码,注意传过来的是字符串需要进行转化为对应的类型
    Integer id = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    String author = request.getParameter("author");
    String publish = request.getParameter("publish");
    String number = request.getParameter("number");


    // 将信息保存到实体类中
    Material material = new Material();

    material.setId(id);
    material.setName(name);
    material.setAuthor(author);
    material.setPublish(publish);
    material.setNumberr(number);

    System.out.println("添加的教材信息");
    System.out.println(material);



    // 将数据写入到数据库
    MaterialService materialService = new MaterialServiceImpl();
    boolean flag = materialService.addMaterial(material);

    if(flag){
        response.sendRedirect("main.jsp");
    }else{
        response.sendRedirect("error.jsp");
    }
%>
</body>
</html>

material-update.jsp

<%@ page import="com.sjsq.entity.Material" %>
<%@ page import="com.sjsq.service.MaterialService" %>
<%@ page import="com.sjsq.service.impl.MaterialServiceImpl" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改教材</title>
    <link rel="stylesheet" type="text/css" href="css/common.css">
</head>
<body>
<%-- 头部 --%>
<jsp:include page="top.jsp"/>

<h1>修改教材</h1>
<hr/>

<%
    //获取main.jsp页面的id
    Integer id = Integer.parseInt(request.getParameter("id"));
    MaterialService materialService = new MaterialServiceImpl();
    Material material = materialService.selectMaterial(id);
%>

<div>
    <a href="javascript: window.history.go(-1)">返回上一级</a>
</div>
</br>

<form action="material-update-do.jsp" method="post" id="addForm">

    <div>
        <%-- 这里教职工号不能修改 --%>
        <tr>
            <label>教材编号:</label>
            <input type="text" name="id" id="id" placeholder="请输入教材编号" value="<%=material.getId()%>" readonly="true">
        </tr>
    </div>
    <div>
        <tr>
            <label>教材名称:</label>
            <input type="text" name="name" id="name" placeholder="请输入教材名称" value="<%=material.getName()%>" autofocus="autofocus">
        </tr>
    </div>
    <div>
        <tr>
            <label>教材作者:</label>
            <input type="text" name="author" id="author" placeholder="请输入教材作者" value="<%=material.getAuthor()%>">
        </tr>
    </div>
    <div>
        <tr>
            <label>出版社名:</label>
            <input type="text" name="publish" id="publish" placeholder="请输入出版社名" value="<%=material.getPublish()%>">
        </tr>
    </div>
    <div>
        <tr>
            <label>教材数量:</label>
            <input type="text" name="number" id="number" placeholder="请输入教材数量" value="<%=material.getNumber()%>">
        </tr>
    </div>


    <br>
    <div id="submit">
        <tr>
            <button type="submit" onclick="return checkForm()">修改</button>
            <button type="reset">重置</button>

        </tr>
    </div>
</form>



<script type="text/javascript">
    function checkForm() {
        var id = addForm.id.value;
        var name = addForm.name.value;

        // 教材编号和教材名称不能为空
        if (id == "" || id == null) {
            alert("请输入教材编号");
            addForm.id.focus();
            return false;
        } else if (name == "" || name == null) {
            alert("请输入教材名称");
            addForm.name.focus();
            return false;
        }
        return true;
    }
</script>

<%-- 底部 --%>
<jsp:include page="bottom.jsp"/>
</body>
</html>

material-update-do.jsp

<%@ page import="com.sjsq.entity.Material" %>
<%@ page import="com.sjsq.service.MaterialService" %>
<%@ page import="com.sjsq.service.impl.MaterialServiceImpl" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改教材</title>
</head>
<body>
<%
    // 设置获取注册时的编码为UTF-8
    request.setCharacterEncoding("UTF-8");

    //获取teacher-update.jsp页面提交的账号和密码,注意传过来的是字符串需要进行转化为对应的类型
    Integer id = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    String author = request.getParameter("author");
    String publish = request.getParameter("publish");
    String number = request.getParameter("number");

    // 将信息保存到实体类中
    Material material = new Material();
    material.setId(id);
    material.setName(name);
    material.setAuthor(author);
    material.setPublish(publish);
    material.setNumberr(number);

    System.out.println("修改的教材信息");
    System.out.println(material);


    // 将数据写入到数据库
    MaterialService materialService = new MaterialServiceImpl();
    boolean flag = materialService.updateMaterial(material);

    if(flag){
        response.sendRedirect("main.jsp");
    }else{
        response.sendRedirect("error.jsp");
    }
%>
</body>
</html>

4. Other

1. More systems

Java+JSP system series implementation

Java+JSP Realization of Student Book Management System

Java+JSP Realization of Student Information Management System

Java+JSP Realization of User Information Management System

Java+JSP Realization of Teacher Information Management System

Java+JSP Realization of Student Dormitory Management System

Java+JSP Realization of Commodity Information Management System

Java+JSP realizes pet information management system

Java+Servlet system series implementation

Java+Servlet+JSP Realization of Airline Booking System

Java+Servlet+JSP Realization of News Release System

Java+Servlet+JSP Student Dormitory Management System

Java+Servlet+JSP Realization of Book Management System

Java+Servlet+JSP Realization of Parking Lot Management System

Java+Servlet+JSP Realization of Housing Rental Management System

Java+Servlet+JSP Realization of Student Information Management System

Java+Servlet+JSP to realize student course selection management system

Java+Servlet+JSPl realizes the student's course selection and sign-in system

Java+Servlet+JSP realizes pet clinic management system

Java+Servlet+JSP realizes student achievement management system-1

Java+Servlet+JSP realizes student achievement management system-2

Java+SSM system series implementation

Java+SSM+JSP to realize online examination system

Java+SSM+JSP to realize pet mall system

Java+SSM+JSP Realization of Supermarket Management System

Java+SSM+JSP realizes student achievement management system

Java+SSM+JSP Realization of Student Information Management System

Java+SSM+JSP Realization of Drug Information Management System

Java+SSM+JSP+Maven to realize online bookstore system

Java+SSM+JSP+Maven to realize school education management system

Java+SSH system series implementation

Java+SSH+JSP Realization of Online Exam System

Java+SSH+JSP Realization of Hospital Online Registration System

Java+Springboot system series implementation

Java+Springboot+H-ui+Maven to realize marketing management system

Java+Springboot+Bootstrap+Maven to realize online mall system

Java+Springboot+Bootstrap+Maven realizes scenic tourism management system

1. For more JavaWeb systems, please pay attention to the column.

https://blog.csdn.net/helongqiang/category_10020130.htmlhttps://blog.csdn.net/helongqiang/category_10020130.html

2. For more JavaSwing systems, please pay attention to the column.

https://blog.csdn.net/helongqiang/category_6229101.htmlhttps://blog.csdn.net/helongqiang/category_6229101.html

2. Source code download

sql is under the sql folder

Java+JSP+Mysql realizes Web school textbook management system

3. Run the project

How IDEA Imports JavaWeb Project Super Detailed Video Tutorial

4. Remarks

If there is any infringement, please contact me to delete it.

5. Support Bloggers

If you think this article is helpful to you, please like, follow and favorite. wish you a happy life!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324110931&siteId=291194637