栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

「Java入门项目」使用MySQL实现简易图书管理系统(非Web)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

「Java入门项目」使用MySQL实现简易图书管理系统(非Web)

使用MySQL实现简易图书管理系统

概述:本系统借鉴了MVC思想,由Maven构建,使用MyBatis+MySQL进行数据存储与处理,交互界面直接由控制台以字符方式输出

分析项目结构:

  • Data.pojo包下有三个实体类bookInfo、readerInfo、borrowInfo,依次代表图书信息,读者信息,借阅信息
  • Data.UI包下mainUI为主菜单,bookInfoUI、readerInfoUI、borrowInfoUI三个类依次实现了交互界面的输出和用户请求的处理,并与数据库进行通信。
  • Data.Mapper包为一系列Mapper接口,与SQL映射文件相对应,体现了通过Mapper代理的方式使用MyBatis。
  • resource目录下的三个xml文件为SQL映射文件,存储SQL语句,映射到Mapper接口。
数据库结构

功能具体实现 1.图书信息添加功能

使用mapper接口方法bookinfoMapper.bookInfoAdd

private static void bookInfoAdd() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);

        System.out.println("请输入要添加的图书数量:");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        bookInfo bookinfo = new bookInfo();

        for (int i = 0; i < n; i++) {
            System.out.println("请输入书号:");
            bookinfo.setId(scanner.nextInt()); scanner.nextLine();
            System.out.println("请输入书名:");
            bookinfo.setName(scanner.nextLine());
            System.out.println("请输入作者:");
            bookinfo.setAuthor(scanner.nextLine());
            System.out.println("请输入出版社:");
            bookinfo.setPress(scanner.nextLine());
            System.out.println("请输入出版日期:");
            bookinfo.setDate(scanner.nextLine());
            System.out.println("请输入存馆数量:");
            bookinfo.setNumber(scanner.nextInt());
            System.out.println("请输入定价:");
            bookinfo.setPrice(scanner.nextDouble());

            bookinfoMapper.bookInfoAdd(bookinfo);
            sqlSession.commit();
            System.out.println("添加成功!");
        }
        sqlSession.close();
        showbookInfo();
    }
2.图书信息查询
    private static void bookInfoQuery() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);

        System.out.println("请输入查询对象:");
        System.out.println("1.按书名查询");
        System.out.println("2.按作者名");
        System.out.println("3.按出版社");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt(); scanner.nextLine();

        switch (choose){
            case 1 -> {
                System.out.println("请输入书的名称:");
                String name = scanner.nextLine();
                List bookinfo = bookinfoMapper.selectByName(name);
                for (bookInfo bookInfo : bookinfo) {
                    System.out.println(bookInfo);
                }
                sqlSession.close();
                showbookInfo();
            }
            case 2 -> {
                System.out.println("请输入作者:");
                String author = scanner.nextLine();
                List bookinfo = bookinfoMapper.selectByAuthor(author);
                for (bookInfo bookInfo : bookinfo) {
                    System.out.println(bookInfo);
                }
                sqlSession.close();
                showbookInfo();
            }
            case 3 -> {
                System.out.println("请输入出版社:");
                String press = scanner.nextLine();
                List bookinfo = bookinfoMapper.selectByPress(press);
                for (bookInfo bookInfo : bookinfo) {
                    System.out.println(bookInfo);
                }
                sqlSession.close();
                showbookInfo();
            }
        }
    }

3.图书信息排序
    private static void bookInfoSort() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);

        System.out.println("1.按书号进行升序排序");
        System.out.println("2.按书名进行升序排序");
        System.out.println("请输入要执行的操作:");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt();

        switch (choose){
            case 1 -> {
                List bookinfo = bookinfoMapper.selectByIdUp();
                for (bookInfo bookInfo : bookinfo) {
                    System.out.println(bookInfo);
                }
                sqlSession.close();
                showbookInfo();
            }
            case 2 ->{
                List bookinfo = bookinfoMapper.selectByNameUp();
                for (bookInfo bookInfo : bookinfo) {
                    System.out.println(bookInfo);
                }
                sqlSession.close();
                showbookInfo();
            }
        }
    }

4.图书信息的修改、删除
    private static void bookInfoEdit() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);
        bookInfo bookinfo = new bookInfo();

        System.out.println("1.按书号进行修改");
        System.out.println("2.按书名进行修改");
        System.out.println("请输入要进行的操作:");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt(); scanner.nextLine();
        switch(choose){
            case 1 -> {
                System.out.println("请输入书号:");
                bookinfo.setId(scanner.nextInt()); scanner.nextLine();
                System.out.println("请输入书名:");
                bookinfo.setName(scanner.nextLine());
                System.out.println("请输入作者:");
                bookinfo.setAuthor(scanner.nextLine());
                System.out.println("请输入出版社:");
                bookinfo.setPress(scanner.nextLine());
                System.out.println("请输入出版日期:");
                bookinfo.setDate(scanner.nextLine());
                System.out.println("请输入存馆数量:");
                bookinfo.setNumber(scanner.nextInt());
                System.out.println("请输入定价:");
                bookinfo.setPrice(scanner.nextDouble());
                bookinfoMapper.EditById(bookinfo);
                sqlSession.commit();
                System.out.println("修改成功!");
                sqlSession.close();
                showbookInfo();
            }
            case 2 -> {
                System.out.println("请输入书名:");
                bookinfo.setName(scanner.nextLine());
                System.out.println("请输入书号:");
                bookinfo.setId(scanner.nextInt()); scanner.nextLine();
                System.out.println("请输入作者:");
                bookinfo.setAuthor(scanner.nextLine());
                System.out.println("请输入出版社:");
                bookinfo.setPress(scanner.nextLine());
                System.out.println("请输入出版日期:");
                bookinfo.setDate(scanner.nextLine());
                System.out.println("请输入存馆数量:");
                bookinfo.setNumber(scanner.nextInt());
                System.out.println("请输入定价:");
                bookinfo.setPrice(scanner.nextDouble());
                bookinfoMapper.EditByName(bookinfo);
                sqlSession.commit();
                System.out.println("修改成功!");
                sqlSession.close();
                showbookInfo();
            }
        }
    }

    private static void bookInfoDelete() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);

        System.out.println("1.按书号删除");
        System.out.println("2.按书名删除");

        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt(); scanner.nextLine();


        switch (choose){
            case 1 -> {
                System.out.println("请输入书号:");
                int id = scanner.nextInt();
                bookinfoMapper.bookInfoDeleteById(id);
                sqlSession.commit();
                System.out.println("删除成功");
                sqlSession.close();
                showbookInfo();
            }
            case 2 -> {
                System.out.println("请输入书名:");
                String name = scanner.nextLine();
                bookinfoMapper.bookInfoDeleteByName(name);
                sqlSession.commit();
                System.out.println("删除成功");
                sqlSession.close();
                showbookInfo();
            }
        }
    }

5.读者信息添加功能
    private static void readerInfoAdd() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);

        readerInfo readerinfo = new readerInfo();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        readerinfo.setNum(scanner.nextInt()); scanner.nextLine();
        System.out.println("请输入姓名:");
        readerinfo.setName(scanner.nextLine());
        System.out.println("请输入学院:");
        readerinfo.setCollege(scanner.nextLine());
        System.out.println("请输入专业班级:");
        readerinfo.setMajor_class(scanner.nextLine());

        readerinfoMapper.readerInfoAdd(readerinfo);
        sqlSession.commit();
        System.out.println("添加成功!");
        sqlSession.close();
        showReaderInfo();
    }

6.读者信息查询
    private static void readerInfoQuery() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);

        System.out.println("请输入查询对象:");
        System.out.println("1.按学号查询");
        System.out.println("2.按姓名查询");
        System.out.println("3.按专业班级查询");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt(); scanner.nextLine();

        switch (choose){
            case 1 -> {
                System.out.println("请输入学号:");
                int num = scanner.nextInt();
                List readerInfos = readerinfoMapper.selectByNum(num);
                for(readerInfo readerInfo : readerInfos){
                    System.out.println(readerInfo);
                }
                sqlSession.close();
                showReaderInfo();
            }
            case 2 -> {
                System.out.println("请输入姓名:");
                String name = scanner.nextLine();
                List readerInfos = readerinfoMapper.selectByName(name);
                for(readerInfo readerInfo : readerInfos){
                    System.out.println(readerInfo);
                }
                sqlSession.close();
                showReaderInfo();
            }
            case 3 -> {
                System.out.println("请输入专业班级");
                String major_class = scanner.nextLine();
                List readerInfos = readerinfoMapper.selectByMajor_class(major_class);
                for(readerInfo readerInfo : readerInfos){
                    System.out.println(readerInfo);
                }
                sqlSession.close();
                showReaderInfo();
            }
        }
    }

7.读者信息排序
    private static void readerInfoSort() throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);

        System.out.println("1.按学号进行升序排序");
        System.out.println("2.按学院进行升序排序");
        System.out.println("请输入要执行的操作:");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt();

        switch (choose){
            case 1 ->{
                List readerInfos = readerinfoMapper.selectByNumUp();
                for(readerInfo readerInfo : readerInfos){
                    System.out.println(readerInfo);
                }
                sqlSession.close();
                showReaderInfo();
            }
            case 2 ->{
                List readerInfos = readerinfoMapper.selectByCollegeUp();
                for(readerInfo readerInfo : readerInfos){
                    System.out.println(readerInfo);
                }
                sqlSession.close();
                showReaderInfo();
            }
        }
    }

8.读者信息的修改、删除
    private static void readerInfoEdit() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);
        readerInfo readerinfo = new readerInfo();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        readerinfo.setNum(scanner.nextInt()); scanner.nextLine();
        System.out.println("请输入姓名:");
        readerinfo.setName(scanner.nextLine());
        System.out.println("请输入学院:");
        readerinfo.setCollege(scanner.nextLine());
        System.out.println("请输入专业班级:");
        readerinfo.setMajor_class(scanner.nextLine());
        readerinfoMapper.readerInfoEdit(readerinfo);
        sqlSession.commit();
        System.out.println("修改成功!");
        sqlSession.close();
        showReaderInfo();
    }

    private static void readerInfoDelete() throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = scanner.nextInt(); scanner.nextLine();
        System.out.println("请输入姓名:");
        String name = scanner.nextLine();
        readerinfoMapper.readerInfoDelete(num,name);
        sqlSession.commit();
        System.out.println("删除成功");
        sqlSession.close();
        showReaderInfo();
    }

9.图书借阅
    private static void borrowBook() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);
        borrowinfoMapper borrowinfoMapper = sqlSession.getMapper(borrowinfoMapper.class);
        readerinfoMapper readerinfoMapper = sqlSession.getMapper(readerinfoMapper.class);
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = scanner.nextInt();
        System.out.println("请输入书号:");
        int id = scanner.nextInt();

        if(bookinfoMapper.bookNumberQuery(id) > 0){
            System.out.println("该书当前数量为" + bookinfoMapper.bookNumberQuery(id) + ",可以借阅");
            System.out.println("请输入要借阅的数量:");
            int bookNum = scanner.nextInt(); scanner.nextLine();
            System.out.println("请输入借阅时长(天):");
            String deadline = scanner.nextLine();
            String sname = readerinfoMapper.getSname(num);
            String bname = bookinfoMapper.getBname(id);
            bookinfoMapper.bookNumberDec(id, bookNum);
            borrowinfoMapper.borrowInfoAdd(num, id, sname, bname, deadline);
            sqlSession.commit();
            System.out.println("借阅成功!");
            showBorrowInfo();
        }else{
            System.out.println("该书当前数量为" + bookinfoMapper.bookNumberQuery(id) + ",无法借阅");
            showBorrowInfo();
        }
    }

10.图书归还
    private static void returnBook() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        bookinfoMapper bookinfoMapper = sqlSession.getMapper(bookinfoMapper.class);
        borrowinfoMapper borrowinfoMapper = sqlSession.getMapper(borrowinfoMapper.class);
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号:");
        int num = scanner.nextInt();
        System.out.println("请输入书号:");
        int id = scanner.nextInt();
        System.out.println("请输入要归还的数量:");
        int bookNum = scanner.nextInt();
        bookinfoMapper.bookNumberInc(id, bookNum);
        borrowinfoMapper.returnInfoEdit(num, id);
        sqlSession.commit();
        System.out.println("归还成功!");
        showBorrowInfo();
    }

11.图书借阅查询
    private static void borrowBookQuery() throws Exception {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        borrowinfoMapper borrowinfoMapper = sqlSession.getMapper(borrowinfoMapper.class);
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入查询方式:");
        System.out.println("1.按学号查询");
        System.out.println("2.按书名查询");
        System.out.println("3.按学院查询");
        int choose = scanner.nextInt(); scanner.nextLine();
        switch(choose){
            case 1 -> {
                System.out.println("请输入学号:");
                int num = scanner.nextInt();
                List borrowInfos = borrowinfoMapper.selectByNum(num);
                for(borrowInfo borrowInfo : borrowInfos){
                    System.out.println(borrowInfo);
                }
                sqlSession.close();
                showBorrowInfo();

            }
            case 2 -> {
                System.out.println("请输入书名:");
                String name = scanner.nextLine();
                List borrowInfos = borrowinfoMapper.selectByName(name);
                for(borrowInfo borrowInfo : borrowInfos){
                    System.out.println(borrowInfo);
                }
                sqlSession.close();
                showBorrowInfo();
            }
            case 3 -> {
                System.out.println("请输入学院:");
                String college = scanner.nextLine();
                List borrowInfos = borrowinfoMapper.selectByCollege(college);
                for(borrowInfo borrowInfo : borrowInfos){
                    System.out.println(borrowInfo);
                }
                sqlSession.close();
                showBorrowInfo();
            }
        }
    }


       sqlSession.close();
                showBorrowInfo();
            }
            case 3 -> {
                System.out.println("请输入学院:");
                String college = scanner.nextLine();
                List borrowInfos = borrowinfoMapper.selectByCollege(college);
                for(borrowInfo borrowInfo : borrowInfos){
                    System.out.println(borrowInfo);
                }
                sqlSession.close();
                showBorrowInfo();
            }
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号