JAVASE——图书管理系统

JAVASE图书管理系统

        主要业务有:管理员(增删改查),会员(借书还书查看记录)

                              管理员主要有:查看图书,增加图书,修改图书,会员管理,删除图书,

                              会员主要有:查看图书,借书,还书,查看记录,返回登陆

项目分层

beans:实体类层

controller:控制层

dao:数据层

service:业务层

impl:实现层
test:测试层

lib:JDBC包

util:工具类

具体代码

beans Book:

                        

package com.xszx.beans;
//实体类层
public class Book {
    private int id;
    private  String name;
    private  String authon;
    private    int num;


    public Book(int id, String name, String authon, int num) {
        this.id = id;
        this.name = name;
        this.authon = authon;
        this.num = num;
    }

    public Book() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthon() {
        return authon;
    }

    public void setAuthon(String authon) {
        this.authon = authon;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", authon='" + authon + '\'' +
                ", num=" + num +
                '}';
    }
}
beans JieBook:
package com.xszx.beans;

import java.sql.Timestamp;
import java.util.Date;

public class JieBook {

    private int id;
    private int uid;
    private int bid;
    private Date jdate;
    private Date hdate;


    public JieBook() {
    }

    public JieBook(int id, int uid, int bid, Date jdate, Date hdate) {
        this.id = id;
        this.uid = uid;
        this.bid = bid;
        this.jdate = jdate;
        this.hdate = hdate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getUid() {
        return uid;
    }

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

    public int getBid() {
        return bid;
    }

    public void setBid(int bid) {
        this.bid = bid;
    }

    public Date getJdate() {
        return jdate;
    }

    public void setJdate(Timestamp jdate) {
        this.jdate = jdate;
    }

    public Date getHdate() {
        return hdate;
    }

    public void setHdate(Timestamp hdate) {
        this.hdate = hdate;
    }

    @Override
    public String toString() {
        return "JieBook{" +
                "id=" + id +
                ", uid=" + uid +
                ", bid=" + bid +
                ", jdate='" + jdate + '\'' +
                ", hdate='" + hdate + '\'' +
                '}';
    }
}

beans User:

package com.xszx.beans;

public class User {
    private  int id;
    private String account;//账号
    private String pwd;//密码
    private int role;

    public User(int id, String account, String pwd, int role) {
        this.id = id;
        this.account = account;
        this.pwd = pwd;
        this.role = role;
    }

    public User() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public int getRole() {
        return role;
    }

    public void setRole(int role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", account='" + account + '\'' +
                ", pwd='" + pwd + '\'' +
                ", role=" + role +
                '}';
    }
}

controller  BookController:

package com.xszx.controller;

import com.xszx.beans.Book;
import com.xszx.beans.JieBook;
import com.xszx.beans.User;
import com.xszx.service.BookService;
import com.xszx.service.impl.BookServiceImpl;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//控制层
public class BookController {


        Scanner sc = new Scanner(System.in);
        //控制层要告诉业务层,因为不能直接new接口所以要new接口实现类
        BookService bookService = new BookServiceImpl();
        //主方法
        public void show(){
                System.out.println("【1】查看图书【2】添加图书【3】修改图书【4】删除图书【5】会员管理【6】返回上一层");

                int n = sc.nextInt();
                if (n == 1){
                        showbook();
                }else if (n == 2){
                       addbook();
                }else if (n == 3){
                        update();
                }else if (n == 4){
                        delete();
                }else if (n == 5){
                      huiyuanguanli(null);
                }else if (n == 6){
                        new UserController().register();
                }

        }

        void huiyuanguanli(User us) {

                System.out.println("【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录");

                int n =sc.nextInt();
                if (n == 1){
                        lookbook(us);
                }else if (n == 2){
                       // jiebook(us);
                        addjbook(us);
                }else if (n == 3){
                        upjbook(us);
                       // huanbook(us);
                }else if (n == 4){
                       // lookjilu1(us);
                        getjbooksuser(us);
                }else if (n == 5){
                        new UserController().register();
                }


        }
        //还书
        private void upjbook(User us) {
                System.out.println("请输入你要还书的编号");
                int bid = sc.nextInt();

                //判断图书是否需要归还   uid bid hdate
                int id =bookService.getjbookuidbid(us,bid);

                if (id>0){
                        bookService.updatejbook(id,bid);
                        System.out.println("还书成功");
                        huiyuanguanli(us);
                }else{
                        System.out.println("这本书不需要还");
                        huiyuanguanli(us);
                }


        }

        //借书
        private void addjbook(User us) {
                System.out.println("请输入你要借的图书编号");
                int bid =sc.nextInt();
                int i = bookService.getbookid(bid);
                if (i == 1){
                        int id =bookService.getjbookuidbid(us,bid);
                        if (id>0){
                                System.out.println("当前这本书借了没有还");
                                huiyuanguanli(us);
                        }else{
                                bookService.addjbook(us,bid);
                                System.out.println("借书成功");
                                huiyuanguanli(us);
                        }
                }else{
                        System.out.println("图书不存在");
                        huiyuanguanli(us);
                }
        }

        //查看借书记录
        private void getjbooksuser(User us) {
                List<JieBook>  jiebookList = bookService.getjboosuser(us);
                for (JieBook j : jiebookList){
                        System.out.println(j);
                }
                huiyuanguanli(us);
        }

        private void lookjilu1(User us) {
                System.out.println("【1】查看所有【2】查看已经归还的完成的借书记录【3】查看没有归还的【4】返回上一层");
                int n = sc.nextInt();

                if (n == 1){
                        lookjilu(us);
                }else if (n == 2){
                        lookyihuan(us);
                }else if (n == 3){
                        lookguihuan(us);
                }else if (n == 4){
                        huiyuanguanli(us);
                }


        }
        //查看已经归还的借书记录
        private void lookyihuan(User us) {
                List<JieBook> jlist = bookService.look();
                for (JieBook jb : jlist){
                        System.out.println(jb);
                        huiyuanguanli(us);
                }
        }

        //查看没有归还的借书记录
        private void lookguihuan(User us) {
                List<JieBook> huanlist = bookService.getlookbook();

                for (JieBook jb : huanlist){
                        System.out.println(jb);
                }
                huiyuanguanli(us);

        }

        //查看记录
        private void lookjilu(User us) {
                List<JieBook> jlist = bookService.look();
                for (JieBook jb : jlist){
                        System.out.println(jb);
                        huiyuanguanli(us);
                }




        }





        //会员查看图书查看图书
        private void lookbook(User us) {

                List<Book> list = bookService.getbooks();
                for (Book book : list){

                        System.out.println(book);
                }
                huiyuanguanli(us);

        }


        //删除图书
        private void delete() {
                System.out.println("请输入你要删除的图书编号");
                        int id = sc.nextInt();

                     bookService.delbook(id);
                        System.out.println("删除成功");
                        show();

        }

        //修改图书
        private void update() {
                Book book = new Book();

                System.out.println("请输入你要修改的图书名字");
                book.setName(sc.next());
                //提前判断图书名字是否存在,存在则修改,不存在则不修改
                boolean b = bookService.getbookname(book);
                if (b){
                        Book book1 = new Book();
                        System.out.println("请输入你要修改后的图书名字");
                        book1.setName(sc.next());
                        System.out.println("请输入你要修改后的图书作者");
                        book1.setAuthon(sc.next());
                        System.out.println("请输入你要修改后的图书数量");
                        book1.setNum(sc.nextInt());
                        //传入两个值,一个判断的值一个修改的值
                        bookService.updatebook(book,book1);
                        System.out.println("修改完成");
                        show();
                }else{
                        System.out.println("你要修改的图书不存在");
                        show();
                }


        }

        //添加图书
        private void addbook() {
                //控制曾告诉业务层,用list调用业务层来创建addbooks抽象方法

                Book book = new Book();

                System.out.println("请输入你要添加的图书名字");
                book.setName(sc.next());
                //提前判断图书名字是否存在,存在则不添加,不存在则继续添加

                boolean b = bookService.getbookname(book);

                        if (b){
                                System.out.println("添加的图书你名字冲突");

                                show();
                        }else {
                                System.out.println("请输入你要添加的图书作者");
                                book.setAuthon(sc.next());
                                System.out.println("请输入你要添加的图书数量");
                                book.setNum(sc.nextInt());

                                //后台添加完成是否成功
                                int i = bookService.addbook(book);

                                if (i == 1){
                                        System.out.println("添加成功");
                                        show();
                                }else{
                                        System.out.println("添加失败");
                                        show();
                                }
                        }



        }

        //查看图书
        private void showbook() {

                //控制层告诉业务层,用list调用业务层来创建getbooks抽象方法
                List<Book> list = bookService.getbooks();
                for (Book book : list){

                        System.out.println(book);
                }
                show();
        }


}

controller  UserControlle:

{

        Scanner sc = new Scanner(System.in);
        UserService userService = new UserServiceImpl();
        public void register(){
            System.out.println("【1】登录【2】注册");
            int n = sc.nextInt();

            if (n == 1){
                denglu();
            }else if (n == 2){
                zhuce();
            }
        }
    //注册
    private void zhuce() {
        User user = new User();
        System.out.println("请输入你要注册的账号");
        user.setAccount(sc.next());
        System.out.println("请输入你要注册的密码");
        user.setPwd(sc.next());

        //判断账号是否重复 如果重复就停止添加,如果不重复就继续添加

        boolean b = userService.getzhanghao(user);

            if (b){
                System.out.println("您输入的账号重复请重新注册");
                register();
            }else{
                userService.zhuce(user);
                System.out.println("注册成功,请登录");
                register();
        }
    }

    //登录
    private void denglu() {
            User user = new User();
        System.out.println("请输入你的账号");
        user.setAccount(sc.next());
        System.out.println("请输入你的密码");
        user.setPwd(sc.next());
        User us = userService.getzm(user);

        if (us == null){
            System.out.println("你的账号密码错误");
            denglu();
        }else{
            System.out.println("登陆成功");
            //判断是管理员还是用户
            if (us.getRole() == 1){
                new BookController().show();
            }else{
                new BookController().huiyuanguanli(us);
            }

        }

    }
}

service BookService:

package com.xszx.service;

import com.xszx.beans.Book;
import com.xszx.beans.JieBook;
import com.xszx.beans.User;
import com.xszx.dao.BookDao;

import java.util.List;

//业务层
public interface BookService {


   //创建查看的抽象方法由BookServiceImpl来实现
   List<Book> getbooks();

   int addbook(Book book);

   boolean getbookname(Book book);

   void updatebook(Book book, Book book1);

   void delbook( int id);
   List<JieBook> look();
   List<JieBook> getlookbook();


   List<JieBook> getjboosuser(User us);

   int getbookid(int bid);

   int getjbookuidbid(User us, int bid);

   void addjbook(User us, int bid);

   void updatejbook(int id,int bid);

}

service UserService:

package com.xszx.service;

import com.xszx.beans.User;

public interface UserService {





    boolean getzhanghao(User user);


    User getzm(User user);

    void zhuce(User user);


}

serviceimpl  BookServiceImpl:

package com.xszx.service.impl;

import com.xszx.beans.Book;
import com.xszx.beans.JieBook;
import com.xszx.beans.User;
import com.xszx.dao.BookDao;
import com.xszx.service.BookService;

import java.util.List;

public class BookServiceImpl implements BookService {
    //应为要调用数据层,所以new一个数据层的对象
    BookDao bookDao = new BookDao();

    //添加
    public int addbook(Book book) {

        return bookDao.addbook(book);
    }

    @Override
    public boolean getbookname(Book book) {


        return bookDao.getbookname(book);
    }

    @Override
    public void updatebook(Book book, Book book1) {
        bookDao.updatebook( book,book1);
    }
    @Override
    public void delbook(int id) {
        bookDao.delbook(id);
    }
    @Override
    public List<JieBook> look() {
        return bookDao.look();
    }

    @Override
    public List<JieBook> getlookbook() {


        return bookDao.getlookbook();
    }

    @Override
    public List<JieBook> getjboosuser(User us) {
        return bookDao.getjboosuser(us);
    }

    @Override
    public int getbookid(int bid) {
        return bookDao.getbookid(bid);
    }

    @Override
    public int getjbookuidbid(User us, int bid) {
        return bookDao.getjbookuidbid(us,bid);
    }

    @Override
    public void addjbook(User us, int bid) {
        //添加借书记录
        bookDao.addjbook(us,bid);
        //图书数量-1
        bookDao.delbooksum(bid);
    }

    @Override
    public void updatejbook(int id,int bid) {
        bookDao.updatejbook(id);//还书
        bookDao.addbooksum(bid);//+1
    }


    //实现查看方法
    @Override
    public List<Book> getbooks() {
        //创建数据层的查看方法,返回一个list
        List<Book> list = bookDao.getbooks();
        return list;
    }





}

service UserServiceImpl:

package com.xszx.service.impl;

import com.xszx.beans.User;
import com.xszx.dao.UserDao;
import com.xszx.service.UserService;

public class UserServiceImpl implements UserService {
        UserDao userDao = new UserDao();

        @Override
        public User getzm(User user) {

                return userDao.getzm(user);
        }

        @Override
        public void zhuce(User user) {
                userDao.zhuce(user);
        }

        @Override
        public boolean getzhanghao(User user) {


                return userDao.getzhanghao(user);
        }
}

test Test:

package com.xszx.test;
import com.xszx.controller.UserController;

//启动方法
public class Test {

    public static void main(String[] args) {
        System.out.println("欢迎来到**的图书管");
        new UserController().register();
    }

}

util      (数据库需要自己创建)

package com.xszx.util;

import java.sql.*;

public class JDBCUtil {
    static String url = "jdbc:mysql://localhost:3306/work";
    static String user = "root";
    static String password = "root";


    static {
        //加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //获取连接
    public static Connection getConnection() {
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }


    public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {

        try {
            if (conn != null) {
                conn.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

JDBC需要连接数据库,数据库以及内容需要自己创建

运行结果展示

管理员运行结果:省略

会员运行结果:

欢迎来到**的图书管
【1】登录【2】注册
2
请输入你要注册的账号
777
请输入你要注册的密码
777
注册成功,请登录
【1】登录【2】注册
1
请输入你的账号
777
请输入你的密码
777
登陆成功
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
1
Book{id=1, name='三国演义', authon='罗贯中', num=9}
Book{id=2, name='西游记', authon='吴承恩', num=9}
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
2
请输入你要借的图书编号
1
借书成功
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
1
Book{id=1, name='三国演义', authon='罗贯中', num=8}
Book{id=2, name='西游记', authon='吴承恩', num=9}
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
4
JieBook{id=2, uid=13, bid=1, jdate='2024-07-15 10:32:05.0', hdate='null'}
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
3
请输入你要还书的编号
1
还书成功
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
1
Book{id=1, name='三国演义', authon='罗贯中', num=9}
Book{id=2, name='西游记', authon='吴承恩', num=9}
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录
4
JieBook{id=2, uid=13, bid=1, jdate='2024-07-15 10:32:05.0', hdate='2024-07-15 10:32:12.0'}
【1】查看图书【2】借书【3】还书【4】查看借书记录【5】返回登录

  • 16
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值