将图书表,读者表,借阅表写成类的格式,生个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));
}
}