JDBC-图书管理系统

JDBC-图书管理系统

数据库设计

在这里插入图片描述

BOOK

CREATE TABLE `book`  (
  `book_id` int(11) NOT NULL AUTO_INCREMENT,
  `book_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `book_kind` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `book_author` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `book_print` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `book_state` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY USING BTREE (`book_id`)
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

在这里插入图片描述

Boorrow

CREATE TABLE `borrow`  (
  `borrow_id` int(11) NOT NULL AUTO_INCREMENT,
  `borrow_bookid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `borrow_readerid` int(11) NOT NULL,
  `borrow_gettime` date NOT NULL,
  `borrow_returntime` date NOT NULL,
  `ya_money` int(11) NULL DEFAULT NULL,
  PRIMARY KEY USING BTREE (`borrow_id`)
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

在这里插入图片描述

reader

DROP TABLE IF EXISTS `reader`;
CREATE TABLE `reader`  (
  `reader_id` int(11) NOT NULL AUTO_INCREMENT,
  `reader_book_id` int(11) NOT NULL,
  `reader_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `reader_sex` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `reader_tel` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `reader_department` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `reader_class` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY USING BTREE (`reader_id`)
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

在这里插入图片描述

user

CREATE TABLE `user`  (
  `user_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `user_keyword` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `user_role` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY USING BTREE (`user_id`)
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

在这里插入图片描述

数据库系统登录界面

管理员界面

1:用户登录

UserDao

  public List<UserInfo> login(String username, String pwd){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象
        ArrayList<UserInfo> list = new ArrayList<>();
        String sql = "select * from user where user_id=? and user_keyword=?";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setString(1, username);
            ps.setString(2, pwd);
            //执行sql  得到一个resultSet
            rs = ps.executeQuery();
            //处理rs
            while (rs.next()){
                UserInfo user = new UserInfo(); //创建一个user对象用来接收数据库查的信息
                String user_id = rs.getString("user_id");
                String user_keyword = rs.getString("user_keyword");
                String user_role = rs.getString("user_role");
                user.setUser_id(user_id);
                user.setUser_ketword(user_keyword);
                user.setUser_role(user_role); //截止到这里,我们把数据库查询出来的数据,封装到了user中
                list.add(user);    //把封装并赋值完成的对象存入list集合中
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return list;
    }

2:修改密码

UserDao

 public int updateKeyWord(String username, String pwd){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象

        String sql = "UPDATE user set   user_keyword=?  where user_id=? ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setString(1, pwd);
            ps.setString(2, username);
            //执行sql  得到一个resultSet
             num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;

    }

3:新增用户功能

UserDao

  public int insertMethod(UserInfo userInfo){
        //ArrayList<UserInfo> list = new ArrayList<>();
        String sql = "insert into  user values(?,?,?) ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setString(1, userInfo.getUser_id());
            ps.setString(2, userInfo.getUser_ketword());

            ps.setString(3, userInfo.getUser_role());
            //执行sql  得到一个resultSet
             num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;
    }

4:删除用户功能

UserDao

 public int delectMethod(UserInfo user1)  {
       // ArrayList<UserInfo> list = new ArrayList<>();
        String sql = "delete FROM user where user_id = ?";
        try {
            ps = con.prepareStatement(sql);
            ps.setObject(1, user1.getUser_id());
             num = ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return num;

    }

5:查询用户(根据用户名模糊查询)

UserDao

 public List<UserInfo> selectUser(String content) {
        ArrayList<UserInfo> list = new ArrayList<>();

        String sql = "select * from user where user_id like ? ";
        try {

            ps = con.prepareStatement(sql);
            ps.setObject(1, "%"+content+"%");
            rs = ps.executeQuery();
            while (rs.next()){
                UserInfo user = new UserInfo();
                String user_id = rs.getString("user_id");
                String user_keyword = rs.getString("user_keyword");
                String user_role = rs.getString("user_role");
                user.setUser_id(user_id);
                user.setUser_ketword(user_keyword);
                user.setUser_role(user_role); 
                list.add(user);   
            }

        } catch (Exception e) {
            e.printStackTrace();
        }


        return list;

    }

UserControl

package com.ts.controller;

import com.ts.Service.UserService;
import com.ts.pojo.UserInfo;

import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/**
 * @description:com.ts.controller_Word.java
 * @author: 霏宇
 * @time: 2022/6/27,17:22
 */
public class UserControl {
    Scanner sc = new Scanner(System.in);
    // 创建user逻辑层对象
    UserService service = new UserService();
      BookControl control2= new BookControl();
    ReadControl control3=new ReadControl();
    // 数据库登录界面
    public void login() {
        System.out.println("------数据库系统登录界面------");
        System.out.println("请输入您的登录名");
        UserInfo user = new UserInfo();
        String user_id = sc.next();  //获取控制台输入的内容 用作user_id
        user.setUser_id(user_id); //给user对象设置user_id
        System.out.println("请输入您的密码");
        String user_keyWord = sc.next();
        user.setUser_ketword(user_keyWord);
        System.out.println(user.toString());
        //调用service层方法 获取权限
        String quanxian = service.login(user.getUser_id(), user.getUser_ketword());
        if(quanxian.equals("admin")){
            indexGuan(user);
        }else if(quanxian.equals("普通用户")){
            indexYon(user);
        }else {
            System.out.println("输入的登录名与密码不匹配");
            login();
        }
    }
    //管理员界面
    public void indexGuan(UserInfo user) {
        System.out.println("---------管理员界面----------");
        System.out.println("输入数字,选择相应的功能");
        System.out.println("1:用户登录");
        System.out.println("2:修改密码");
        System.out.println("3:新增用户功能");
        System.out.println("4:删除用户功能");
        System.out.println("5:查询用户(根据用户名模糊查询)");
        System.out.println("6:新增图书");
        System.out.println("7:删除图书");
        System.out.println("8:修改图书");
        System.out.println("9:退出数据库系统界面");
        int choose = sc.nextInt();
        if (choose == 1) {
            login();
        }
        if (choose == 2) {
            updateKeyWord(user);
        }
        if (choose == 3) {
            insertMethod(user);
        }
        if (choose == 4) {
            delectMethod(user);
        }
        if (choose == 5) {
            selectUser(user);

        }
        if (choose == 6) {
            control2.insertMethod();
            indexGuan(user);
        }

        if (choose == 7) {
            control2.delectMethod();
            indexGuan(user);
        }
        if (choose == 8) {
            control2.updateBookInfo();
            indexGuan(user);
        }
        if (choose == 9) {
            System.out.println("------退出数据库系统界面---------");
        }
    }
    /**
     * @param user
     *            用户界面
     */
    public void indexYon(UserInfo user) {
        System.out.println("---------用户界面----------");
        System.out.println("输入数字,选择相应的功能");
        System.out.println("1:新增读者信息,同时新增一个读者用户信息");
        System.out.println("2:删除读者信息,同时删除读者的用户信息");
        System.out.println("3:修改读者信息,同时修改读者的用户信息");
        System.out.println("4:查询最近1周将要到期图书名,读者姓名,还书时间,借阅时间");
        System.out.println("5:查询已过还书时间的图书名,读者姓名,还书时间,借阅时间");
        System.out.println("6:用户借书功能");
        System.out.println("7:用户还书功能");
        System.out.println("8:退出登录");
        int choose = sc.nextInt();

        if (choose == 1) {
            control3.addMethod();
            indexYon(user);
        }
        if (choose == 2) {
            control3.delectMethod();
            indexYon(user);
        }
        if (choose == 3) {
            control3.updateReaderInfoMethod();
            indexYon(user);
        }
        if (choose == 4) {
            control3.userSelectByWeek();
            indexYon(user);
        }
        if (choose == 5) {
            control3.selectReaderInfoOutReturnTime();
            indexYon(user);
        }
        if (choose == 6) {
            control3.borrowBook(user);
            indexYon(user);
        }
        if (choose == 7) {
            control3.returnBorrowBook(user);
            indexYon(user);
        }
        if (choose == 8) {
            System.out.println("------退出数据库系统界面---------");
        }
    }
    public void updateKeyWord(UserInfo user) {
		System.out.println("--------修改密码界面--------- ");
		System.out.println("请输入您要修改的密码值:");
		String adminJS = user.getUser_id();
		String key2 = sc.next();
		int num2 = service.updateKeyWord(adminJS, key2);
		if (num2 == 0) {
            System.out.println("该用户修改失败");
			updateKeyWord(user);

		} else {
			System.out.println("该用户密码修改成功");
			indexGuan(user);
		}

	}
	public void insertMethod(UserInfo user) {
		System.out.println("-------------管理员新增用户界面--------------");
		UserInfo user1 = new UserInfo();
		System.out.println("请输入新增用户id:");
		String user1Id = sc.next();
		System.out.println("请输入新增用户密码");
        String user1Key = sc.next();
		System.out.println("请输入新增用户类型");
		String user1Role = sc.next();

		user1.setUser_id(user1Id);
		user1.setUser_ketword(user1Key);
		user1.setUser_role(user1Role);
		int num = service.insert(user1);
		if (num > 0) {
            System.out.println("添加用户成功!");
			indexGuan(user);
		} else {
			indexGuan(user);
		}
	}
	public void delectMethod(UserInfo user)  {
		System.out.println("-------------管理员删除用户界面--------------");
		UserInfo user1 = new UserInfo();
		System.out.println("请输入删除用户id:");
        String user1Id = sc.next();
        user1.setUser_id(user1Id);
		int num = service.delect(user1);
		if (num > 0) {
			System.out.println("删除成功");
			indexGuan(user);
		} else {
			indexGuan(user);
		}
	}


	public void selectUser(UserInfo user1) {
		System.out.println("-------------管理员查询用户界面--------------");
		System.out.println("请输入你要查询的用户");
		String content = sc.next();
		List<UserInfo> list = service.selectUser(content);
		if (list != null) {
			Iterator<UserInfo> it = list.iterator();
			while (it.hasNext()) {
				UserInfo user = it.next();
				System.out.println(user.getUser_role() +","+ user.getUser_id() + "号" + ",用户存在");
			}
		} else {
			indexGuan(user1);
		}

	}


}

UserService

package com.ts.Service;

import com.ts.Dao.UserDao;
import com.ts.pojo.UserInfo;

import java.util.Iterator;
import java.util.List;

/**
 * @description:com.ts.Service_Word.java
 * @author: 霏宇
 * @time: 2022/6/27,17:23
 */
public class UserService {
    UserDao dao = new UserDao();  //创建dao层对象 可以调用里面的方法

    //登录 service层登录方法 返回值选用的是String 用来接收权限信息
    //我们根据service层login方法得到的权限,然后需要它在controller层被调用进行判断
    public String login(String username, String pwd) {
        String quanxian = null;
        //调用dao层login方法  得到一个user的集合

        List<UserInfo> list = dao.login(username, pwd);
        //遍历集合 取出user对象
        Iterator<UserInfo> it = list.iterator();
        while (it.hasNext()) {
            UserInfo user = it.next();
            quanxian = user.getUser_role();
        }
        if (quanxian != null && quanxian.equals("admin")) {
            return "admin";
        } else if (quanxian != null && quanxian.equals("普通用户")) {
            return "普通用户";
        } else {
            return "other";
        }
    }


    public int updateKeyWord(String adminJS, String key2) {
        return  dao.updateKeyWord(adminJS, key2);

    }

    public int insert(UserInfo user1) {
        return  dao.insertMethod(user1);

    }

    public int delect(UserInfo user1)  {
        return dao.delectMethod(user1);
    }

    public List<UserInfo> selectUser(String content) {
        return  dao.selectUser(content);
    }



//    public int insert(UserInfo user1) {
//
//    }
}

UserService

package com.ts.Service;

import com.ts.Dao.UserDao;
import com.ts.pojo.UserInfo;

import java.util.Iterator;
import java.util.List;

/**
 * @description:com.ts.Service_Word.java
 * @author: 霏宇
 * @time: 2022/6/27,17:23
 */
public class UserService {
    UserDao dao = new UserDao();  //创建dao层对象 可以调用里面的方法

    //登录 service层登录方法 返回值选用的是String 用来接收权限信息
    //我们根据service层login方法得到的权限,然后需要它在controller层被调用进行判断
    public String login(String username, String pwd) {
        String quanxian = null;
        //调用dao层login方法  得到一个user的集合

        List<UserInfo> list = dao.login(username, pwd);
        //遍历集合 取出user对象
        Iterator<UserInfo> it = list.iterator();
        while (it.hasNext()) {
            UserInfo user = it.next();
            quanxian = user.getUser_role();
        }
        if (quanxian != null && quanxian.equals("admin")) {
            return "admin";
        } else if (quanxian != null && quanxian.equals("普通用户")) {
            return "普通用户";
        } else {
            return "other";
        }
    }


    public int updateKeyWord(String adminJS, String key2) {
        return  dao.updateKeyWord(adminJS, key2);

    }

    public int insert(UserInfo user1) {
        return  dao.insertMethod(user1);

    }

    public int delect(UserInfo user1)  {
        return dao.delectMethod(user1);
    }

    public List<UserInfo> selectUser(String content) {
        return  dao.selectUser(content);
    }




6:新增图书

BookDao

public int insertMethod(BookInfo bookInfo){

        String sql = "insert into  book values(?,?,?,?,?,?) ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setObject(1, bookInfo.getBookId());
            ps.setString(2, bookInfo.getBookName());
            ps.setString(3, bookInfo.getBookKind());
            ps.setString(4, bookInfo.getBookAuthor());
            ps.setString(5, bookInfo.getBookPrint());
            ps.setString(6, bookInfo.getBookState());
            //执行sql  得到一个resultSet
             num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;
    }

7:删除图书

BookDao

 public int delectMethod(BookInfo bookInfo) {
        String sql = "delete FROM book where book_id = ?";
        try {
            ps = con.prepareStatement(sql);
            ps.setObject(1, bookInfo.getBookId());
            num = ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return num;
    }

8:修改图书

BookDao

 public int updateKeyWord(String bookName, String bookState){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象

        String sql = "UPDATE book set   book_state=?  where book_name=? ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setString(1, bookState);
            ps.setObject(2, bookName);
            //执行sql  得到一个resultSet
             num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;

    }

BookControl

package com.ts.controller;

import com.ts.Service.BookService;
import com.ts.pojo.BookInfo;

import java.util.Scanner;

/**
 * @description:com.ts.controller_Word.java
 * @author: 霏宇
 * @time: 2022/6/28,9:36
 */
public class BookControl  {
    BookService service = new BookService();
    BookInfo book =new BookInfo();

    Scanner sc = new Scanner(System.in);
    public void insertMethod(){
      System.out.println("-------------管理员图书新增界面--------------");

        System.out.println("请输入新增图书id:");
        long  bookId =sc.nextLong();
        System.out.println("请输入新增图书名称");
        String book1Name = sc.next();
        System.out.println("请输入新增图书种类");
        String book1Kind = sc.next();
        System.out.println("请输入新增图书作者");
        String book1Author = sc.next();
        System.out.println("请输入新增图书出版社");
        String book1Print = sc.next();
        System.out.println("请输入新增图书借出情况");
        String book1State =sc.next();
        book.setBookId(bookId);
        book.setBookName(book1Name);
        book.setBookKind(book1Kind);
        book.setBookAuthor(book1Author);
        book.setBookPrint(book1Print);
        book.setBookState(book1State);
        int num = service.insert(book);
        if (num > 0) {
            System.out.println("新增图书成功!");




        } else {
            System.out.println("新增图书失败!");

        }


    }

    public void delectMethod() {
        System.out.println("-------------管理员删除图书界面--------------");
        BookInfo book = new BookInfo();
        System.out.println("请输入删除图书id:");
        int bookId = sc.nextInt();
        book.setBookId(bookId);
        int num = service.delect(book);
        if (num > 0) {
            System.out.println("删除成功");

        } else {
            System.out.println("删除失败!");
        }
    }

    public void updateBookInfo() {
        System.out.println("--------修改图书界面--------- ");
        System.out.println("请输入您要输入要修改图书名称");
        String  bookName =sc.next();

        System.out.println("请输入您要修改借出情况");

        String book1State =sc.next();

        int num2 = service.updateBookInfo(bookName, book1State);
        if (num2 == 0) {
            System.out.println("该图书修改失败");


        } else {
            System.out.println("该图书修改成功");

        }
    }
}

BookService

package com.ts.Service;

import com.ts.Dao.BookDao;
import com.ts.pojo.BookInfo;

/**
 * @description:com.ts.Service_Word.java
 * @author: 霏宇
 * @time: 2022/6/27,17:23
 */
public class BookService {
    BookDao bookDao=new BookDao();
    int num = 0;
    public int insert(BookInfo bookInfo) {
        return bookDao.insertMethod(bookInfo);

    }

    public int delect(BookInfo bookInfo)  {
        return bookDao.delectMethod(bookInfo);
    }

    public  int updateBookInfo(String bookName, String book1State) {
        return  bookDao.updateKeyWord(bookName,book1State);
    }

}

用户界面

1:新增读者信息,同时新增一个读者用户信息

ReaderDao

 public int insertMethod(ReaderInfo readerInfo){

        String sql = "insert into  reader values(?,?,?,?,?,?,?) ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setObject(1, readerInfo.getReaderId());
            ps.setObject(2, readerInfo.getReaderBookId());
            ps.setString(3, readerInfo.getReaderName());
            ps.setString(4, readerInfo.getReaderSex());
            ps.setString(5, readerInfo.getReaderTel());
            ps.setString(6, readerInfo.getReaderDepartment());
            ps.setString(7, readerInfo.getReaderClass());
            //执行sql  得到一个resultSet
             num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;
    }

2:删除读者信息,同时删除读者的用户信息

ReaderDao

  public int delectMethod(ReaderInfo readerInfoo) {
        String sql = "delete FROM reader where reader_id = ?";
        try {
            ps = con.prepareStatement(sql);
            ps.setObject(1, readerInfoo.getReaderId());
            num = ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return num;
    }

3:修改读者信息,同时修改读者的用户信息

ReaderDao

  public int updateKeyWord(Long readerId, Long readerBookId ,String readerTel ){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象

        String sql = "UPDATE reader set   reader_book_id=? ,reader_tel=?  where reader_id=? ";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值
            ps.setObject(1, readerBookId);
            ps.setString(2, readerTel);
            ps.setObject(3, readerId);
            //执行sql  得到一个resultSet
            num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;

    }

4:查询最近1周将要到期图书名,读者姓名,还书时间,借阅时间

ReaderDao

 public List<UserSelectWeek> userSelectByWeek() {
        ArrayList<UserSelectWeek> list = new ArrayList<>();

        String sql = "select distinct  reader.reader_name,  book.book_name,borrow.borrow_gettime,borrow_returntime from borrow\n" +
                "\n" +
                "inner join reader on borrow.borrow_readerid = reader.reader_id\n" +
                "\n" +
                "inner join book on reader.reader_id = book.book_id\n" +
                "\n" +
                "where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(borrow_returntime); ";
        try {

            ps = con.prepareStatement(sql);

            rs = ps.executeQuery();
            while (rs.next()){
                UserSelectWeek userSelectWeek = new UserSelectWeek(); //创建一个user对象用来接收数据库查的信息
                String bookName = rs.getString("book_name");
                String readerName = rs.getString("reader_name");
                String borrowTime = rs.getString("borrow_gettime");
                String returnTime = rs.getString("borrow_returntime");
                userSelectWeek.setBookName(bookName);
                userSelectWeek.setReaderName(readerName);
                userSelectWeek.setBorrowTime(borrowTime);
                userSelectWeek.setReturnTime(returnTime);

                list.add(userSelectWeek);    //把封装并赋值完成的对象存入list集合中
            }

        } catch (Exception e) {
            e.printStackTrace();
        }


        return list;

    }

5:查询已过还书时间的图书名,读者姓名,还书时间,借阅时间

ReaderDao

 public List<UserSelectWeek> userSelectByWeek() {
        ArrayList<UserSelectWeek> list = new ArrayList<>();

        String sql = "select distinct  reader.reader_name,  book.book_name,borrow.borrow_gettime,borrow_returntime from borrow\n" +
                "\n" +
                "inner join reader on borrow.borrow_readerid = reader.reader_id\n" +
                "\n" +
                "inner join book on reader.reader_id = book.book_id\n" +
                "\n" +
                "where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(borrow_returntime); ";
        try {

            ps = con.prepareStatement(sql);

            rs = ps.executeQuery();
            while (rs.next()){
                UserSelectWeek userSelectWeek = new UserSelectWeek(); //创建一个user对象用来接收数据库查的信息
                String bookName = rs.getString("book_name");
                String readerName = rs.getString("reader_name");
                String borrowTime = rs.getString("borrow_gettime");
                String returnTime = rs.getString("borrow_returntime");
                userSelectWeek.setBookName(bookName);
                userSelectWeek.setReaderName(readerName);
                userSelectWeek.setBorrowTime(borrowTime);
                userSelectWeek.setReturnTime(returnTime);

                list.add(userSelectWeek);    //把封装并赋值完成的对象存入list集合中
            }

        } catch (Exception e) {
            e.printStackTrace();
        }


        return list;

    }

查询图书

ReaderDao

  public List<BookInfo> selectUser(String content) {
        ArrayList<BookInfo> list = new ArrayList<>();

        String sql = "SELECT  *\n" +
                "FROM book \n" +
                "where book_name=?;";
        try {

            ps = con.prepareStatement(sql);
            ps.setObject(1, content);
            rs = ps.executeQuery();
            while (rs.next()){
                BookInfo bookInfo = new BookInfo(); //创建一个user对象用来接收数据库查的信息
                long bookId=rs.getLong("book_id");
                String bookName = rs.getString("book_name");
                String bookState = rs.getString("book_state");

                bookInfo.setBookId(bookId);
                bookInfo.setBookName(bookName);
                bookInfo.setBookState(bookState); //截止到这里,我们把数据库查询出来的数据,封装到了user中
                list.add(bookInfo);    //把封装并赋值完成的对象存入list集合中
                System.out.println(133);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }


        return list;

    }

6:用户借书功能

ReaderDao

  public int updateUser(String user,Long bookId ){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象
        ArrayList<ReaderInfo> list = new ArrayList<>();
        String sql = "insert into borrow (borrow_bookid,borrow_readerid,borrow_gettime,borrow_returntime) " +
                "values(?,?,CURDATE(),(DATE_SUB(CURDATE(), INTERVAL 7 DAY)));";
        try {
            ps=con.prepareStatement(sql);
            //给?赋值

            ps.setObject(1,  bookId);
            ps.setObject(2,  user);

            //执行sql  得到一个resultSet
            num = ps.executeUpdate();
            //处理rs

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return  num;

    }

7:用户还书功能

ReaderDao

  public int returnBorrowBook(Long borrowId ){
        //创建一个集合,用来存放从数据库查询到的数据封装的对象

        String sql = "delete FROM borrow where borrow_bookid = ?";
        try {
            ps = con.prepareStatement(sql);
            ps.setObject(1,borrowId);
            num = ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return num;

    }

ReadService

package com.ts.Service;

import com.ts.Dao.ReaderDao;
import com.ts.pojo.BookInfo;
import com.ts.pojo.ReaderInfo;
import com.ts.pojo.UserSelectWeek;

import java.util.List;

/**
 * @description:com.ts.Service_Word.java
 * @author: 霏宇
 * @time: 2022/6/27,17:23
 */
public class ReadService {
    ReaderDao readerDao=new ReaderDao();
    int num = 0;
    public int insert(ReaderInfo readerInfo) {
        return readerDao.insertMethod(readerInfo);

    }

    public int delect(ReaderInfo readerInfo)  {
        return readerDao.delectMethod(readerInfo);
    }

    public int updateBookInfo(Long readerId, Long readerBookId ,String readerTel) {
        return  readerDao.updateKeyWord(readerId,readerBookId,readerTel);
    }

    public List<UserSelectWeek> selectUser() {
        return  readerDao.userSelectByWeek();
    }

    public List<UserSelectWeek> selectReaderInfoOutReturnTime() {
        return  readerDao.selectReaderInfoOutReturnTime();
    }

    public List<BookInfo> borrowBook(String book) {

        return  readerDao.selectUser(book);
    }
    public int updateUser(String user,  long bookId ) {

        return  readerDao.updateUser(user,bookId);
    }

    public int returnBorrowBook(Long borrowId)  {
        return readerDao.returnBorrowBook(borrowId);
    }
}

ReadControl

package com.ts.controller;

import com.ts.Service.BookService;
import com.ts.Service.ReadService;
import com.ts.pojo.BookInfo;
import com.ts.pojo.ReaderInfo;
import com.ts.pojo.UserInfo;
import com.ts.pojo.UserSelectWeek;

import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/**
 * @description:com.ts.controller_Word.java
 * @author: 霏宇
 * @time: 2022/6/28,9:36
 */
public class ReadControl {
    ReadService service = new ReadService();
    ReaderInfo read =new ReaderInfo();
    BookService service2 =new BookService();

    Scanner sc = new Scanner(System.in);
    public void addMethod(){
      System.out.println("-------------读者信息新增界面--------------");

        System.out.println("请输入新增读者id:");
        long  readId =sc.nextLong();
        System.out.println("请输入新增读者借书id:");
        long    bookId =sc.nextLong();
        System.out.println("请输入新增读者名称");
        String read1Name = sc.next();
        System.out.println("请输入新增读者性别");
        String readSex = sc.next();
        System.out.println("请输入新增读者电话");
        String readTel = sc.next();
        System.out.println("请输入新增读者院系");
        String readDepartment = sc.next();
        System.out.println("请输入新增读者班级");
        String readClass =sc.next();
        read.setReaderId(readId);
        read.setReaderBookId(bookId);
        read.setReaderName(read1Name);
        read.setReaderSex(readSex);
        read.setReaderTel(readTel);
        read.setReaderDepartment(readDepartment);
        read.setReaderClass(readClass);
        int num = service.insert(read);
        if (num > 0) {
            System.out.println("新增读者成功!");




        } else {
            System.out.println("新增读者失败!");

        }


    }


    public void delectMethod() {
        System.out.println("-------------删除读者界面--------------");
        ReaderInfo reader = new ReaderInfo();
        System.out.println("请输入删除图书id:");
        int renderId = sc.nextInt();
        reader .setReaderId(renderId);
        int num = service.delect(reader );
        if (num > 0) {
            System.out.println("删除成功");

        } else {
            System.out.println("删除失败!");
        }
    }

    public void updateReaderInfoMethod() {
        System.out.println("--------修改读者界面--------- ");
        System.out.println("请输入您要输入要修改读者id");
        long  readerId =sc.nextLong();
        System.out.println("请输入您要输入借书id");
        long  readerBookId =sc.nextLong();
        System.out.println("请输入您要修改读者电话号");

        String readerTel =sc.next();

        int num2 = service.updateBookInfo(readerId ,readerBookId,readerTel);
        if (num2 == 0) {
            System.out.println("读者信息修改失败");


        } else {
            System.out.println("读者信息修改成功");

        }
    }

    public void userSelectByWeek() {
        System.out.println("-------------查询最近1周将要到期图书--------------");

        List<UserSelectWeek> list = service.selectUser();
        if (list != null) {
            Iterator<UserSelectWeek> it = list.iterator();
            while (it.hasNext()) {
                UserSelectWeek userSelectWeek = it.next();
                System.out.println(userSelectWeek.toString());
            }
        } else {
            System.out.println("查询失败!");
        }

    }

    public void selectReaderInfoOutReturnTime() {
        System.out.println("-------------查询已过还书时间的用户--------------");

        List<UserSelectWeek> list = service.selectReaderInfoOutReturnTime();
        if (list != null) {
            Iterator<UserSelectWeek> it = list.iterator();
            while (it.hasNext()) {
                UserSelectWeek userSelectWeek = it.next();
                System.out.println(userSelectWeek.toString());
            }
        } else {
            System.out.println("查询失败!");
        }

    }
    public void borrowBook(UserInfo user) {
        System.out.println("-------用户借书界面------- ");
        System.out.println("请输入您要查询的图书的名称:");
        String book = sc.next();
        List<BookInfo> list = service.borrowBook(book);


        if (list != null) {
            Iterator<BookInfo> it = list.iterator();
            while (it.hasNext()) {
                BookInfo bookInfo = it.next();
                System.out.println("图书id:"+bookInfo.getBookId()+"\n"+"图书名称:"+bookInfo.getBookName()+"\n"+"借出情况:"+bookInfo.getBookState());
                System.out.println("-------请输入借入图书-------");

                String book2 = sc.next();
                System.out.println("请输入您要借图书情况");
                String book1State =sc.next();

                int num2 = service2.updateBookInfo(book2, book1State);
                if (num2 == 0) {
                    System.out.println("该图书查询失败");


                } else {
                    System.out.println("该图书查询成功");

                }
                int num3=service.updateUser(user.getUser_id(),bookInfo.getBookId());
                if (num3 == 0) {
                    System.out.println("该图书借出失败");


                } else {
                    System.out.println("该图书借出成功");

                }

            }
        } else {
            System.out.println("查询失败!");
        }

    }
    public void returnBorrowBook(UserInfo user) {
        System.out.println("-------用户借书界面------- ");
        System.out.println("请输入您要查询的图书的名称:");
        String book = sc.next();
        List<BookInfo> list = service.borrowBook(book);

        if (list != null) {
            Iterator<BookInfo> it = list.iterator();
            while (it.hasNext()) {
                BookInfo bookInfo = it.next();
                System.out.println("图书id:"+bookInfo.getBookId()+"\n"+"图书名称:"+bookInfo.getBookName()+"\n"+"借出情况:"+bookInfo.getBookState());
                System.out.println("-------请输入借入图书-------");

                String book2 = sc.next();
                System.out.println("请输入您要还图书情况");
                String book1State =sc.next();

                int num2 = service2.updateBookInfo(book2, book1State);
                if (num2 == 0) {
                    System.out.println("该图书查询失败");


                } else {
                    System.out.println("该图书查询成功");

                }
                System.out.println(user.getUser_id());
                int num3=service.returnBorrowBook(bookInfo.getBookId());
                if (num3 == 0) {
                    System.out.println("该图书已还失败");


                } else {
                    System.out.println("该图书已还成功");

                }

            }
        } else {
            System.out.println("查询失败!");
        }

    }

}


版权声明:本文为qq_53886038原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。