JavaWeb图书管理系统课设:全面掌握CRUD操作

这篇具有很好参考价值的文章主要介绍了JavaWeb图书管理系统课设:全面掌握CRUD操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言


最近写了个课设,刚好刚学完javaweb需要巩固一下,课设内容是java增删改查,想睡觉有人送枕头了属于是,这里我是实现了增删改查,删除那里我就偷懒了,只写了批量删除。(实际上就是黑马项目套皮,不过我实现了修改功能,还是有点价值滴)

项目逻辑

后端写好Servlet服务,前端通过ajax申请服务,并将表中数据通过Servlet与后台数据库交互,从而达到前端和后端互通的效果。

一、Mapper层实现代码

1.BookMapper.class

代码如下(示例):

package com.MyJavaClass.mapper;import com.MyJavaClass.pojo.Book;import org.apache.ibatis.annotations.*;import java.util.List;public interface BookMapper {
    @Select("select * from books")
    List<Book> selectAll();
    @Insert("insert into books values(null,#{bookName},#{writer},#{user},#{number},#{state})")
    void add(Book book);
    List<Book> selectBycondition();
    void deleteByIds(@Param("ids")int[] ids);
    @Select("select * from books limit #{begin}, #{size}")
    List<Book> selectByPage(@Param("begin")int begin,@Param("size") int size);
    @Select("select count(*) from books")
    int selectTotalCount();
    List<Book> selectByPageAndCondition(@Param("begin") int begin,@Param("size") int size,@Param("book") Book book);
    int selectTotalCountByCondition(Book book);
    @Update("update books set bookName = #{bookName}, writer = #{writer},user = #{user}, number = #{number}, state = #{state} where id = #{id}")
    void updateById(Book book);}

2.BookMapper.xml

代码如下(示例):

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.MyJavaClass.mapper.BookMapper">
    <select id="selectBycondition" resultType="com.MyJavaClass.pojo.Book">
        select * from books        <where>
            <if test=""></if>
        </where>
    </select>
    <delete id="deleteByIds">
        delete from books where id in        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>
    <select id="selectByPageAndCondition" resultType="com.MyJavaClass.pojo.Book">
        select * from books        <where>
            <if test="book.number != null and book.number != '' ">
                and  number like #{book.number}
            </if>

            <if test="book.bookName != null and book.bookName != '' ">
                and  bookName like #{book.bookName}
            </if>
            <if test="book.writer != null and book.writer != '' ">
                and  writer like #{book.writer}
            </if>
            <if test="book.state != null">
                and  state = #{book.state}
            </if>
        </where>
        limit #{begin},#{size}
    </select>
    <select id="selectTotalCountByCondition" resultType="java.lang.Integer">
        select count(*)
        from books        <where>
            <if test="number != null and number != '' ">
                and  number like #{number}
            </if>
            <if test="bookName != null and bookName != '' ">
                and  bookName like #{bookName}
            </if>
            <if test="writer != null and writer != '' ">
                and  writer like #{book.writer}
            </if>
            <if test="state != null">
                and  state = #{state}
            </if>
        </where>
    </select></mapper>

二、Book数据类型

1.Book.class

    Integer id;
    String number;
    String bookName ;
    String writer ;
    String user ;
    Integer state ;

2.MySQL


id int PRIMARY KEY auto_increment,
  bookName varchar(20),
  writer varchar(20),
  user varchar(20),
  number varchar(20),
  state INT

三、Service层

1、Service接口

文件名:BookService

package com.MyJavaClass.service;import com.MyJavaClass.pojo.Book;import com.MyJavaClass.pojo.PageBean;import java.util.List;public interface BookService {

    List<Book> selectAll();
    void add(Book book);
    void deleteByIds(int[] ids);
    PageBean<Book> selectByPage(int currentPage,int pageSize);
    PageBean<Book> selectByPageAndCondition(int currentPage,int pageSize,Book book);
    void updateById(Book book);}

2、Service实现类

文件名:BookServiceimpl

package com.MyJavaClass.service.impl;import com.MyJavaClass.mapper.BookMapper;import com.MyJavaClass.pojo.Book;import com.MyJavaClass.pojo.PageBean;import com.MyJavaClass.service.BookService;import com.MyJavaClass.util.SqlSessionFactoryUtils;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import java.util.List;public class BookServiceimpl implements BookService {
    SqlSessionFactory factory = SqlSessionFactoryUtils.getSqlSessionFactory();
    public List<Book> selectAll(){
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        List<Book> books = bookMapper.selectAll();
        sqlSession.close();
        return books;
    }
    public void add(Book book){
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        bookMapper.add(book);
        sqlSession.commit();
        sqlSession.close();
    }
    public void deleteByIds(int[] ids){
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        bookMapper.deleteByIds(ids);
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public PageBean<Book> selectByPage(int currentPage, int pageSize) {
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        int begin = (currentPage - 1) * pageSize;
        int size = pageSize;
        List<Book> rows = bookMapper.selectByPage(begin,size);
        int totalCount = bookMapper.selectTotalCount();
        PageBean<Book> pageBean = new PageBean<>();
        pageBean.setRows(rows);
        pageBean.setTotalCount(totalCount);
        sqlSession.close();
        return pageBean;
    }

    @Override
    public PageBean<Book> selectByPageAndCondition(int currentPage, int pageSize, Book book) {
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        int begin = (currentPage - 1) * pageSize;
        int size = pageSize;
        String number = book.getNumber();
        if(number != null && number.length()>0){
            book.setNumber("%" + number + "%");
        }
        String bookName = book.getBookName();
        if(bookName != null && bookName.length()>0){
            book.setBookName("%" + bookName + "%");
        }
        String writer = book.getWriter();
        if(writer != null && writer.length()>0){
            book.setWriter("%" + writer + "%");
        }
        List<Book> rows = bookMapper.selectByPageAndCondition(begin,size,book);
        int totalCount = bookMapper.selectTotalCountByCondition(book);
        PageBean<Book> pageBean = new PageBean<>();
        pageBean.setRows(rows);
        pageBean.setTotalCount(totalCount);
        sqlSession.close();
        return pageBean;
    }
    public void updateById(Book book){
        SqlSession sqlSession = factory.openSession();
        BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
        bookMapper.updateById(book);
        sqlSession.commit();
        sqlSession.close();
    }}

四、Servlet层

文件名:BookServlet.class

package com.MyJavaClass.web;import com.MyJavaClass.pojo.Book;import com.MyJavaClass.pojo.PageBean;import com.MyJavaClass.service.BookService;import com.MyJavaClass.service.impl.BookServiceimpl;import com.alibaba.fastjson.JSON;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.BufferedReader;import java.io.IOException;import java.util.List;@WebServlet("/Book/*")public class BookServlet extends BaseServlet{
    private BookService bookService = new BookServiceimpl();
    public void selectAll(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException{
        List<Book> books = bookService.selectAll();
        String jsonString = JSON.toJSONString(books);
        resp.setContentType("text/json;charset=utf-8");
        resp.getWriter().write(jsonString);
    }
    public void add(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        BufferedReader br = req.getReader();
        String params = br.readLine();

        Book book = JSON.parseObject(params,Book.class);

        bookService.add(book);

        resp.getWriter().write("success");
    }
    public void deleteByIds(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        BufferedReader br = req.getReader();
        String params = br.readLine();
        int[] ids = JSON.parseObject(params,int[].class);
        bookService.deleteByIds(ids);
        resp.getWriter().write("success");
    }
    public void selectByPage(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        String _currentPage = req.getParameter("currentPage");
        String _pageSize = req.getParameter("pageSize");

        int currentPage = Integer.parseInt(_currentPage);
        int pageSize = Integer.parseInt(_pageSize);

        //2. 调用service查询
        PageBean<Book> pageBean = bookService.selectByPage(currentPage, pageSize);

        //2. 转为JSON
        String jsonString = JSON.toJSONString(pageBean);
        //3. 写数据
        resp.setContentType("text/json;charset=utf-8");
        resp.getWriter().write(jsonString);
    }
    public void selectByPageAndCondition(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        String _currentPage = req.getParameter("currentPage");
        String _pageSize = req.getParameter("pageSize");
        int currentPage = Integer.parseInt(_currentPage);
        int pageSize = Integer.parseInt(_pageSize);

        BufferedReader br = req.getReader();
        String params = br.readLine();

        Book book = JSON.parseObject(params,Book.class);

        PageBean<Book> pageBean = bookService.selectByPageAndCondition(currentPage,pageSize,book);

        String jsonString = JSON.toJSONString(pageBean);

        resp.setContentType("text/json;charset=utf-8");
        resp.getWriter().write(jsonString);
    }
    public void updateById(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{//        String id = req.getParameter("id");
        BufferedReader br = req.getReader();
        String params = br.readLine();
        Book book = JSON.parseObject(params, Book.class);
        if(book!=null){
            System.out.println("ok");
            System.out.println(book);
        }
        else System.out.println("no");
        bookService.updateById(book);
        resp.getWriter().write("success");
    }}

五、前端代码实现

文件名:Book.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .el-table .warning-row {
            background: oldlace;
        }
        .el-table .success-row {
            background: #f0f9eb;
        }
        body{
            background:url("img/p.png") no-repeat center top;
   		 background-size:cover;
   		 background-attachment:fixed;
   		 opacity:0.75;
        }
    </style></head><body><div id="app">
    <!--搜索表单-->
    <el-form :inline="true" :model="book" class="demo-form-inline">

        <el-form-item label="当前状态">
            <el-select v-model="book.state" placeholder="当前状态">
                <el-option label="在库中" value="1"></el-option>
                <el-option label="未在库中" value="0"></el-option>
            </el-select>
        </el-form-item>

        <el-form-item label="书籍编号">
            <el-input v-model="book.number" placeholder="书籍编号"></el-input>
        </el-form-item>

        <el-form-item label="书籍名称">
            <el-input v-model="book.bookName" placeholder="书籍名称"></el-input>
        </el-form-item>

        <el-form-item label="作者">
            <el-input v-model="book.writer" placeholder="作者"></el-input>
        </el-form-item>

        <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
        </el-form-item>
    </el-form>

    <!--按钮-->

    <el-row>

        <el-button type="danger" plain @click="deleteByIds">批量删除</el-button>
        <el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
        <el-button type="success" onclick="window.location.href='student.html'"plain>学生信息查询</el-button>
    </el-row>
    <!--添加数据对话框表单-->
    <el-dialog
            title="新增书籍"
            :visible.sync="dialogVisible"
            width="30%"
            >
        <el-form ref="form" :model="book" label-width="80px">
            <el-form-item label="书籍编号">
                <el-input v-model="book.number"></el-input>
            </el-form-item>

            <el-form-item label="书籍名称">
                <el-input v-model="book.bookName"></el-input>
            </el-form-item>

            <el-form-item label="作者">
                <el-input v-model="book.writer"></el-input>
            </el-form-item>

            <el-form-item label="借阅人">
                <el-input v-model="book.user"></el-input>
            </el-form-item>

            <el-form-item label="状态">
                <el-switch v-model="book.state"
                           active-value="1"
                           inactive-value="0"
                ></el-switch>
            </el-form-item>

            <el-form-item>
                <el-button type="primary" @click="addBrand">提交</el-button>
                <el-button @click="dialogVisible = false">取消</el-button>
            </el-form-item>
        </el-form>
    </el-dialog>

    <el-dialog
            title="修改书籍"
            :visible.sync="dialog2Visible"
            width="30%"
    >
        <el-form ref="form" :model="brandSelect" label-width="80px">
            <el-form-item label="书籍编号">
                <el-input v-model="brandSelect.number"></el-input>
            </el-form-item>

            <el-form-item label="书籍名称">
                <el-input v-model="brandSelect.bookName"></el-input>
            </el-form-item>

            <el-form-item label="作者">
                <el-input v-model="brandSelect.writer"></el-input>
            </el-form-item>

            <el-form-item label="借阅人">
                <el-input v-model="brandSelect.user"></el-input>
            </el-form-item>

            <el-form-item label="状态">
                <el-switch v-model="brandSelect.state"
                           active-value="1"
                           inactive-value="0"
                ></el-switch>
            </el-form-item>

            <el-form-item>
                <el-button type="primary" @click="update">提交</el-button>
                <el-button @click="dialog2Visible = false">取消</el-button>
            </el-form-item>
        </el-form>
    </el-dialog>
    <!--表格-->
    <template >
        <el-table                :data="tableData"
                style="width: 100%"
                :row-class-name="tableRowClassName"
                @selection-change="handleSelectionChange"
        >
            <el-table-column
                    type="selection"
                    width="55">
            </el-table-column>
            <el-table-column
                    type="index"
                    width="50">
            </el-table-column>

            <el-table-column
                    prop="number"
                    label="书籍编号"
                    align="center"
            >
            </el-table-column>
            <el-table-column
                    prop="bookName"
                    label="书籍名称"
                    align="center"
            >
            </el-table-column>
            <el-table-column
                    prop="writer"
                    align="center"
                    label="作者">
            </el-table-column>
            <el-table-column
                    prop="state"
                    align="center"
                    label="当前状态">
            </el-table-column>

            <el-table-column
                    prop="user"
                    align="center"
                    label="借阅人">
            </el-table-column>

            <el-table-column
                    align="center"
                    label="操作">

                <template slot-scope="scope">
                <el-row>
                    <el-button type="primary"@click="brandShow(scope.row)">修改</el-button>
                </el-row>
                </template>
            </el-table-column>

        </el-table>
    </template>

    <!--分页工具条-->
    <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage"
            :page-sizes="[5, 10, 15, 20]"
            :page-size="5"
            layout="total, sizes, prev, pager, next, jumper"
            :total="totalCount">
    </el-pagination></div><script src="js/axios-0.18.0.js"></script><script src="js/vue.js"></script><script src="element-ui/lib/index.js"></script><link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css"><script>
    new Vue({
        el: "#app",
         mounted(){<!--     //当页面加载完成后,发送异步请求,获取数据--><!--     var _this = this;--><!--     axios({--><!--         method:"get",--><!--         url:"http://localhost:8080/curriculumDesign/Book/selectAll"--><!--     }).then(function (resp) {--><!--         _this.tableData = resp.data;--><!--     })-->this.selectAll();
 },     
        methods: {
        //根据id查询

        selectAll(){
        var _this = this;axios({
    method:"post",
    url:"http://localhost:8080/curriculumDesign/Book/selectByPage?currentPage="+this.currentPage+"&pageSize=" + this.pageSize}).then(resp =>{
    //设置表格数据
    _this.tableData = resp.data.rows; // {rows:[],totalCount:100}
    //设置总记录数
    _this.totalCount = resp.data.totalCount;})},
            tableRowClassName({row, rowIndex}) {
                if (rowIndex === 1) {
                    return 'warning-row';
                } else if (rowIndex === 3) {
                    return 'success-row';
                }
                return '';
            },
            // 复选框选中后执行的方法
            handleSelectionChange(val) {
                this.multipleSelection = val;
                console.log(this.multipleSelection)
            },brandShow(row) {
       // 获取数据
       this.brandSelect = row;
       console.log(this.book);
       // 弹出窗口
       this.dialog2Visible = true;
       console.log(this.dialog2Visible);
       this.selectAll();},
                update(){
                var _this = this;
                axios({
                    method:"post",
                    url:"http://localhost:8080/curriculumDesign/Book/updateById",
                    data:_this.brandSelect //这是提交的表单数据
                }).then(function (resp){
                    //这里是success数据
                    if(resp.data == "success"){
                        //添加成功
                        _this.dialog2Visible = false;
                        console.log("修改成功!");
                        //重新查询数据进行显示
                        _this.selectAll();
                        _this.$message({
                            message: '恭喜你,修改成功',
                            type: 'success'
                        });
                    }
                    else{
                        _this.$message.error('修改失败');
                    }
                })
            },
            // 查询方法
            onSubmit() {
                axios({
    method:"post",
    url:"http://localhost:8080/curriculumDesign/Book/selectByPageAndCondition?currentPage="+this.currentPage+"&pageSize="+this.pageSize,
    data:this.book}).then((resp) => {

    //设置表格数据
    this.tableData = resp.data.rows; // {rows:[],totalCount:100}
    //设置总记录数
    this.totalCount = resp.data.totalCount;})
            },
            // 添加数据
            addBrand(){
                var _this = this;

    // 发送ajax请求,添加数据
    axios({
        method:"post",
        url:"http://localhost:8080/curriculumDesign/Book/add",
        data:_this.book    }).then(function (resp) {
       	//响应数据的处理逻辑
       	if(resp.data == "success"){
            //添加成功
            //关闭窗口
            _this.dialogVisible = false;
            // 重新查询数据
            _this.selectAll();
            // 弹出消息提示
            _this.$message({
                message: '恭喜你,添加成功',
                type: 'success'
            });
            }
    })
            },
            deleteByIds(){
    // 弹出确认提示框
    this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
    }).then(() => {
        //用户点击确认按钮
        //1. 创建id数组 [1,2,3], 从 this.multipleSelection 获取即可
        for (let i = 0; i < this.multipleSelection.length; i++) {
            let selectionElement = this.multipleSelection[i];
            this.selectedIds[i] = selectionElement.id;
        }
        //2. 发送AJAX请求
        var _this = this;
        // 发送ajax请求,添加数据
        axios({
            method:"post",
            url:"http://localhost:8080/curriculumDesign/Book/deleteByIds",
            data:_this.selectedIds        }).then(function (resp) {
            if(resp.data == "success"){
                //删除成功
                // 重新查询数据
                _this.selectAll();
                // 弹出消息提示
                _this.$message({
                    message: '恭喜你,删除成功',
                    type: 'success'
                });
            }
        })
    }).catch(() => {
        //用户点击取消按钮
        this.$message({
            type: 'info',
            message: '已取消删除'
        });
    });},
            //分页
            handleSizeChange(val) {
                this.pageSize  = val;
                this.selectAll();
            },
            handleCurrentChange(val) {
                   this.currentPage  = val;
                this.selectAll();
            }
        },
        data() {
            return {
                // 当前页码
                 // 每页显示的条数
                pageSize:5,
                // 总记录数
                totalCount:100,
                // 当前页码
                currentPage: 1,
                // 添加数据对话框是否展示的标记
                dialogVisible: false,
                dialog2Visible: false,<!--                Integer id;--><!--    String number;--><!--    --><!--    String bookName ;--><!--    String writer ;--><!--    String user ;--><!--    Integer state ;-->
               book:{
               state:'',
               bookName:'',
               user:'',
               writer:'',
               number:"",
               id:""
               },
               brandSelect:{
               state:'',
               bookName:'',
               user:'',
               writer:'',
               number:"",
               id:""
               },
                // 品牌模型数据
                brand: {
                    status: '',
                    brandName: '',
                    companyName: '',
                    id:"",
                    ordered:"",
                    description:""
                },
                // 复选框选中数据集合
                multipleSelection: [],
                selectedIds:[],
                // 表格数据
                tableData: [{
                    number:"ccsu123",
                    bookName: '华为',
                    writer: '老人与海',
                    state: '1',
                    user:"唐涛",
                    id:'1'
                }]
            }
        }
    })</script></body></html>

总结

以上就是全部代码了,做起来并不复杂,一两天就能做完,在熟练的情况下不到一天就能弄完。 页面如下

JavaWeb,图书管理系统,CRUD,MyBatis文章来源地址https://www.toymoban.com/news/detail-478202.html

到了这里,关于JavaWeb图书管理系统课设:全面掌握CRUD操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 图书馆管理系统【GUI/Swing+MySQL】(Java课设)

    Swing窗口类型+Mysql数据库存储数据 适合作为Java课设!!! jdk1.8+Mysql8.0+Idea或eclipse+jdbc  本系统源码地址:https://download.csdn.net/download/qq_50954361/87682509 更多Java课设系统:更多Java课设系统 更多Java课设系统运行效果展示:更多Java课设系统运行效果展示  部署教程地址:Java课设部

    2023年04月19日
    浏览(33)
  • 【Jsp课设】3款基于JavaWeb的学生选课管理系统

     项目介绍:后端采用Jsp+Servlet。前端使用的是Layui的一个网站模板。开发一个在线的学生选课管理系统,用于课程设计的使用。 项目类型:JavaWeb源码  用户类型:2个角色(管理员+学生) 主要技术:Jsp+Servlet+MySQL+Jquery(前端Bootstrap或者Layui) 开发工具:Eclipse/Idea均可使用,有两

    2024年02月04日
    浏览(32)
  • javaWeb图书管理系统

    a.项目用到的技术 IDE: Intellij IDEA 语言:java,html + ajax,js 数据库:Mysql 数据库可视化: navicat web服务器:Tomcat 框架:(mybatis,jquery,bootstrap) 项目用到maven 设计模式:MVC b.该项目的主要功能 管理员与普通用户分为不同界面 管理员和普通用户可修改个人信息 管理员和普通用

    2024年02月06日
    浏览(51)
  • 图书管理系统 (javaweb)

    声明一下 这个图书馆管理系统为我 自己 研究制作 而且我本人的英语不好 ,在一些类的命名可能很怪所以请大佬们请勿嘲笑 而且我本人是一位大一学生,代码说不上有多精明 ,我本人在前端的制作方面可能不是很熟练QAQ 用户的登录以及注册 对书籍的增删查以及分页 maven

    2024年02月05日
    浏览(55)
  • 【JavaWeb实验】图书管理系统

     第一次写文,做一次小尝试。把一年前学校里面的小作业放上来,供参考 代码将于文末以百度网盘的形式分享出来 熟悉并掌握如何编写编写各个页面的参数传递以及jsp基本知识。 1 、实验目的       通过JSPJDBC的综合运用,掌握服务端Java Web数据库编程的基本原理和常用技

    2024年02月12日
    浏览(23)
  • 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

    一个管理员编号对应一个密码,且需要有管理员注册密匙。 可以在图书信息表中录入、修改、删除图书。 可以在图书信息表中查询书籍。 可以编辑图书借阅、归还信息。 可以编辑欠款信息。 可以编辑读者信息表。 图书馆注册,获得读者编号。 可以在图书信息表中查阅书籍

    2024年02月10日
    浏览(33)
  • 基于javaweb的图书管理系统

    本项目采用eclipse工具开发,jsp+servlet技术编写,样式采用了layui前端框架,数据库采用的是mysql,navicat开发工具。 系统一共分为2个角色分别是: 管理员,学生 1、登录 2、修改个人信息 3、图书类型管理 4、图书管理 5、图书借阅管理 6、借阅审批管理 7、图书借阅统计 8、学生

    2024年02月04日
    浏览(31)
  • 基于JavaWeb的图书馆管理系统

    🍅 作者主页:

    2024年02月05日
    浏览(34)
  • JavaWeb期末项目 图书馆管理系统

    1 项目基本信息 1.1 项目名称 图书馆管理系统 1.2 开发运行环境 Window 10 64位 JDK 1.8.0 Eclipse 4.8版本 MySql 5.5 Tomcat 9.0 2 项目需求分析 2.1 学生登录部分 (1)学生注册:在进入图书馆前必须要登录,如果没有学号则要注册,注册时系统会将用户填写的学号与数据库里面的数据对比,

    2024年02月10日
    浏览(37)
  • JavaWeb阶段案例--简易版管理图书系统(增删改查)

      在WEB-INF下创建一个lib包,并导入以下jar包:(导入后,鼠标右键选中lib文件夹,单击“add as lib...”  注:使用Lombok包时,除了需要导入jar包还需要从idea中下载Lombok插件 file -- setting -- plugins -- 搜Lombok -- 勾选上 -- Apply -- OK file -- setting -- Build Exec.....  -- Compiler -- Annotation Pro

    2024年02月08日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包