package com.module;
import com.util.DbManage;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;
public class BookDao {
public void saveBook( Book book ) {
Connection conn = DbManage.getConnection();
String sql ="insert into book(name,author,press,num) values (?,?,?,?)";
try{
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,book.getName());
ps.setString(2,book.getAuthor());
ps.setString(3,book.getPress());
ps.setInt(4,book.getNumber());
ps.executeUpdate();
ps.close();
}catch(SQLException e){
e.printStackTrace();
}finally{
DbManage.closeConnection(conn);
}
}
public void DeleteBook( Integer id ) {
Connection conn = DbManage.getConnection();
try{
System.out.println("DeleteBook in BookDao");
System.out.println( id );
String sql = "delete from book where id =?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}finally{
DbManage.closeConnection(conn);
}
}
public Book getBook( Integer id ) {
Connection conn = DbManage.getConnection();
Book book = new Book();
try {
String sql = "select * from book where id =?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if(rs!=null&&rs.next()) {
String name = rs.getString("name");
String author = rs.getString("author");
String press = rs.getString("press");
int num = rs.getInt("num");
book.setId(id);
book.setName(name);
book.setAuthor( author );
book.setPress(press);
book.setNumber(num);
}
}catch( SQLException e) {
e.printStackTrace();
}
finally {
DbManage.closeConnection(conn);
}
return book;
}
public List<Book> QueryBook( String name ) {
List<Book> books = new ArrayList<Book>();
Connection conn = DbManage.getConnection();
String sql = "select * from book where name =?";
try{
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
while(rs.next()){
Book book = new Book();
book.setId( rs.getInt("id"));
book.setName(rs.getString("name"));
book.setAuthor( rs.getString("author"));
book.setPress( rs.getString("press"));
book.setNumber( rs.getInt("num"));
books.add(book);
}
rs.close();
}catch(SQLException e){
e.printStackTrace();
}finally{
DbManage.closeConnection(conn);
}
return books;
}
public boolean lendBook( Integer id,String reader_id ) {
boolean b = false;
Connection conn = DbManage.getConnection();
try{
String sql = "select num from book where id =?";
String sql1 = "select * from readerbooks where reader_id=? and book_id=?";
PreparedStatement ps1 = conn.prepareStatement(sql1);
ps1.setString(1, reader_id);
ps1.setInt(2, id);
ResultSet rs1 = ps1.executeQuery();
if(!rs1.next()) { //判断是否已借过此书;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if(rs.next()){
int num = rs.getInt("num");
num--;
String sql2 = "update book set num=? where id=?";
PreparedStatement ps2 = conn.prepareStatement(sql2);
ps2.setInt(1, num);
ps2.setInt(2, id);
ps2.executeUpdate();
String sql4 = "select * from book where id=?";
PreparedStatement ps4 = conn.prepareStatement(sql4);
ps4.setInt(1, id);
ResultSet rs4 = ps4.executeQuery();
if(rs4.next()) {
String sql3 = "insert into readerbooks(reader_id,book_id,book_name,book_author," +
"book_press) values(?,?,?,?,?)";
PreparedStatement ps3 = conn.prepareStatement(sql3);
ps3.setString(1, reader_id);
ps3.setInt(2, rs4.getInt("id"));
ps3.setString(3,rs4.getString("name"));
ps3.setString(4, rs4.getString("author"));
ps3.setString(5, rs4.getString("press"));
ps3.executeUpdate();
ps3.close();
}
b = true;
System.out.println("LendBook借书成功!");
ps1.close();
ps.close();
ps2.close();
}
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
DbManage.closeConnection(conn);
}
return b;
}
public boolean returnBook( Integer id,String reader_id ) {
boolean b = false;
Connection conn = DbManage.getConnection();
try{
String sql = "select num from book where id =?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if(rs.next()){
int num = rs.getInt("num");
num++;
String sql2 = "update book set num=? where id=?";
PreparedStatement ps2 = conn.prepareStatement(sql2);
ps2.setInt(1, num);
ps2.setInt(2, id);
ps2.executeUpdate();
String sql3 = "delete from readerbooks where reader_id=? and book_id=?";
PreparedStatement ps3 = conn.prepareStatement(sql3);
ps3.setString(1, reader_id);
ps3.setInt(2, id);
ps3.executeUpdate();
b = true;
}
rs.close();
}catch(SQLException e){
e.printStackTrace();
}finally{
DbManage.closeConnection(conn);
}
return b;
}
}
- 1
- 2
前往页