数据库-图书管理操作,题目如图:

将图书表,读者表,借阅表写成类的格式,生个getters和setters方法

package com.book.jdbc;

public class Book {
	private int id;
	private String name;
	private int store;
	@Override
	public String toString() {
		return "Book [id=" + id + ", name=" + name + ", store=" + store + "]";
	}
	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 int getStore() {
		return store;
	}
	public void setStore(int store) {
		this.store = store;
	}
}
package com.book.jdbc;

import java.util.Date;

public class Borrow {
	private int id;
	private int bookId;
	private int readerId;
	private Date rentTime;
	private Date returnTime;
	@Override
	public String toString() {
		return "Borrow [id=" + id + ", bookId=" + bookId + ", readerId=" + readerId + ", rentTime=" + rentTime
				+ ", returnTime=" + returnTime + "]";
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getBookId() {
		return bookId;
	}
	public void setBookId(int bookId) {
		this.bookId = bookId;
	}
	public int getReaderId() {
		return readerId;
	}
	public void setReaderId(int readerId) {
		this.readerId = readerId;
	}
	public Date getRentTime() {
		return rentTime;
	}
	public void setRentTime(Date rentTime) {
		this.rentTime = rentTime;
	}
	public Date getReturnTime() {
		return returnTime;
	}
	public void setReturnTime(Date returnTime) {
		this.returnTime = returnTime;
	}
}
package com.book.jdbc;

public class Reader {
	private int id;
	private String name;
	private String sno;
	@Override
	public String toString() {
		return "Reader [id=" + id + ", name=" + name + ", sno=" + sno + "]";
	}
	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 getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
}

将所需要用到的数据库语句也单独封装成类,命名例如:BookDAO

package com.book.jdbc;

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

public class BookDAO {
	Connection conn;
	
	public BookDAO() {
		conn = DBUtil.getConnection();
	}
	
	//列出所有的图书
	
	public List<Book> getAllBook() {
		String sql = "select * from book";
		List<Book> list = new ArrayList<Book>();
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				Book book = new Book();
				book.setId(rs.getInt("bid"));
				book.setName(rs.getString("bname"));
				book.setId(rs.getInt("bstore"));
				list.add(book);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;
	}
	
	//根据书名查找图书
	public Book getBook(String bookName) {
		Book book = null;
		String sql = "select * from book where bname=?";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setString(1, bookName);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				book = new Book();
				book.setId(rs.getInt("bid"));
				book.setName(rs.getString("bname"));
				book.setStore(rs.getInt("bstore"));
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		return book;
	}
	
	//根据编号查找书名
	public Book getBook(int bookId) {
		Book book = null;
		String sql = "select * from book where bid=?";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, bookId);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				book = new Book();
				book.setId(rs.getInt("bid"));
				book.setName(rs.getString("bname"));
				book.setStore(rs.getInt("bstore"));
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		return book;
	}
	
	//管理员增加图书
	public  boolean createBook(Book book) {
		String sql = "insert into book(bid,bname,bstore) values(?,?,?)";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, book.getId());
			ps.setString(2, book.getName());
			ps.setInt(3, book.getStore());
			ps.executeUpdate();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return false;
		
	}
	//管理员修改图书的库存 
		public boolean updateBook(Book book) {
			String sql = "update Book set bstore=? where bid=? ";
//			String sqlstr = "select bstore from Book where bid=?";
			PreparedStatement ps;
//			int store=0;
			try {
//				PreparedStatement pst = conn.prepareStatement(sqlstr);
//				pst.setInt(1, book.getId());
//				ResultSet rs = pst.executeQuery();
//				if(rs.next()) {
//					store = rs.getInt("bstore");
//				}
				ps = conn.prepareStatement(sql);
				ps.setInt(1,book.getStore());
				ps.setInt(2,book.getId());
				ps.executeUpdate();
				return true;
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return false;
		}
		
		//删除
		public boolean deleteBook(int id) {
			String sql = "delete from Book where bid=? ";
			PreparedStatement ps;
			try {
				ps = conn.prepareStatement(sql);
				ps.setInt(1, id);
				ps.executeUpdate();
				return true;
				
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
			return false;
		}

}
package com.book.jdbc;

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

public class BorrowDAO {
	Connection conn;
	
	public BorrowDAO() {
		conn = DBUtil.getConnection();
	}
	
	//更具ID查看所借书籍
	public Borrow getBorrow(int readerId) {
		Borrow borrow = null;
		String sql = "select * from borrow where reader_id=?";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, readerId);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				borrow = new Borrow();
				borrow.setId(rs.getInt("bwid"));
				borrow.setBookId(rs.getInt("book_id"));
				borrow.setReaderId(rs.getInt("reader_id"));
				borrow.setRentTime(rs.getDate("rent_date"));
				borrow.setReturnTime(rs.getDate("return_date"));
			}		
		}catch (Exception e) {
			e.printStackTrace();
		}
		return borrow;
	}
	//列出所有的借书情况
	public List<Borrow> getAllBorrow() {
		String sql = "select * from borrow";
		List<Borrow> list = new ArrayList<Borrow>();
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				Borrow borrow = new Borrow();
				borrow.setId(rs.getInt("bwid"));
				borrow.setBookId(rs.getInt("book_id"));
				borrow.setReaderId(rs.getInt("reader_id"));
				borrow.setRentTime(rs.getDate("rent_date"));
				borrow.setReturnTime(rs.getDate("return_date"));
				list.add(borrow);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
	
	//添加借书记录
		public  boolean createBorrow(Borrow borrow) {
			String sql = "insert into borrow(bwid,book_id,reader_id,rent_date,return_date) values(?,?,?,?,?)";
			try {
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1,borrow.getId() );
				ps.setInt(2,borrow.getBookId());
				ps.setInt(3, borrow.getReaderId());
				ps.setDate(4,(Date) borrow.getRentTime());
				ps.setDate(5, (Date) borrow.getReturnTime());
				ps.executeUpdate();
				return true;
			} catch (Exception e) {
				e.printStackTrace();
			}
			return false;
		}
		//添加还书记录
		public boolean returnBorrow(int borrowId) {
			String sql = "insert into borrow(return_date) values(?)";
			String sqlstr = "select return_date from borrow where bwid=?";
			Borrow borrow = new Borrow();
			try {
				PreparedStatement pst = conn.prepareStatement(sqlstr);
				pst.setInt(1, borrowId);
				ResultSet rs = pst.executeQuery();
				if(rs.next()) {
					if(rs.getDate("return_date") == null) {
						PreparedStatement ps = conn.prepareStatement(sql);
						ps.setDate(1, (Date) borrow.getReturnTime());
						ps.executeUpdate();
						return true;
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			return false;
		}
		//删除记录
		public boolean deleteBorrow(int borrowId) {
			String sql = "delete from Borrow where bwid=?";
			PreparedStatement ps;
			try {
				ps = conn.prepareStatement(sql);
				ps.setInt(1, borrowId);
				ps.executeUpdate();
				return true;
				
			} catch (Exception e) {
				e.printStackTrace();
			}
			
			return false;
		}
}
package com.book.jdbc;

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

public class ReaderDAO {
	Connection conn;
	
	public ReaderDAO() {
		conn = DBUtil.getConnection();
	}
	
//	管理员根据读者姓名 查看该读者当前所借的所有书籍
	
	public Reader getReader(String readerName) {
		Reader reader = null;
		String sql = "select * from Reader where rname=?";
		try {
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setString(1, readerName);
			ResultSet rs = ps.executeQuery();
			while(rs.next()) {
				reader = new Reader();
				reader.setId(rs.getInt("rid"));
				reader.setName(rs.getString("rname"));
				reader.setSno(rs.getString("sno"));
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}
		return reader;
	}
}

最后写一个测试类:

package com.book.jdbc;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class Test01 {

	public static void main(String[] args) {
		BookDAO bookdao = new BookDAO();
		
		System.out.println("********列出所有的图书信息*******");
		List<Book> list = bookdao.getAllBook();
		for(Book book : list) {
			System.out.println(book);
		}
		System.out.println("************根据书名查找图书************");
		System.out.println(bookdao.getBook("J2EE"));
		
		
		
		System.out.println("*****管理员根据读者姓名 查看该读者当前所借的所有书籍**************");
		ReaderDAO readerdao = new ReaderDAO();
		Reader reader = readerdao.getReader("张三");

		BorrowDAO borrowdao = new BorrowDAO();
		List<Borrow> bwlist = borrowdao.getAllBorrow();
		
		for(Borrow borrow : bwlist) {
			if(borrow.getReaderId()==reader.getId()) {
//				System.out.println(borrow);
				Book book = bookdao.getBook(borrow.getBookId());
				System.out.println(book.getName());
			}
		}
		//修改图书库存
		System.out.println("***************修改库存********************");
//		Book book1 = new Book();
//		book1.setId(1005);
//		book1.setStore(100);
//		System.out.println(bookdao.updateBook(book1));
		
		//借书
		System.out.println("**************借书记录*******************");
		Borrow borrow = new Borrow();
//		borrow.setId(3011);
//		borrow.setBookId(1001);
//		borrow.setReaderId(2006);
//		
//		java.util.Date utilDate = new java.util.Date(); //获取当前时间
//		java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
//		
//		borrow.setRentTime(sqlDate);
//		System.out.println(borrowdao.createBorrow(borrow));
		//修改图书的库存
		Book book = new Book();
		book.setId(borrow.getBookId());
		book.setStore(book.getStore()-1);
		System.out.println(bookdao.updateBook(book));
		
		System.out.println("**************还书***************");
		borrow.setId(3011);
		java.util.Date utilDate1 = new java.util.Date(); //获取当前时间
		java.sql.Date sqlDate2 = new java.sql.Date(utilDate1.getTime());
		borrow.setReturnTime(sqlDate2);
		
		Book book1 = new Book();
		book1.setId(borrow.getBookId());
		book1.setStore(book.getStore()+1);
		System.out.println(bookdao.updateBook(book));
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_39788493/article/details/81170905
今日推荐