package com.net.bookstore.daoImpl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.net.bookstore.dao.BookDAO;
import com.net.bookstore.dto.Book;
import com.net.bookstore.page.PageInfo;
import com.net.bookstore.page.impl.IPopulate;
import com.net.bookstore.page.impl.PageFactory;
import com.net.bookstore.page.impl.PagedStatement;
import com.net.bookstore.util.ConnectionProvider;
public class BookDAOImp implements BookDAO,IPopulate {
/**
* 添加图书
*/
public boolean addBook(Book book) {
ConnectionProvider cp = new ConnectionProvider();
Connection conn=cp.getConnection();
try {
//conn.setAutoCommit(false);
String sql="insert into book(bookname,bookathor,code,bookprice,discount,bookorder,isbn,wordcount,bookcompany,printtime,presstime,uri,bookcount,discription,in_time) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1, book.getBookName());
pst.setString(2, book.getBookAthor());
pst.setInt(3, book.getCode());
pst.setFloat(4, book.getBookPrice());
pst.setFloat(5, book.getDiscount());
pst.setInt(6, book.getBookOrder());
pst.setInt(7, book.getIsbn());
pst.setInt(8, book.getWordCount());
pst.setString(9, book.getBookCompany());
pst.setString(10, book.getPrintTime());//出版时间
pst.setString(11, book.getPressTime());//印刷时间
pst.setString(12, book.getUri());
pst.setInt(13, book.getBookCount());
pst.setString(14, book.getDiscription());
pst.setDate(15, new java.sql.Date(book.getInTime().getTime()));
boolean b=pst.executeUpdate()==1?false:true;
//conn.commit();
pst.close();
conn.close();
return b;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
/*
* 删除图书
*/
/* public boolean deleteAllBooks() {
ConnectionProvider cp = new ConnectionProvider();
Connection conn=cp.getConnection();
try {
String sql="delete book ";
PreparedStatement pst=conn.prepareStatement(sql);
int n=pst.executeUpdate();
pst.close();
conn.close();
if(n>=1){
return true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}*/
public boolean deleteBook(Book book) {
ConnectionProvider cp = new ConnectionProvider();
Connection conn=cp.getConnection();
try {
String sql="delete from book where id=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setInt(1, book.getId());
int n=pst.executeUpdate();
pst.close();
conn.close();
if(n==1){
return true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
/*
* 以下是按各个条件查询
*/
public PageInfo findPagedBooks(int pageNo, int pageSize) {
String sql = "select * from book order by id";
PagedStatement pst = PageFactory.getPagedStatementInstance(sql, pageNo, pageSize);
pst.registerPopulate(this); //注册一个从ResultSet中提交对象的Popluate
return pst.executePagedQuery();
}
public PageInfo queryBookByISBN(int pageNo,int pageSize,int isbn) {//按ISBN查询
String sql="select * from book where isbn=?";
PagedStatement pst = PageFactory.getPagedStatementInstance(sql,isbn, pageNo, pageSize);
pst.registerPopulate(this); //注册一个从ResultSet中提交对象的Popluate
return pst.executePagedQuery();
}
public Book queryBookById(int id) {//按ID查询
ConnectionProvider cp = new ConnectionProvider();
Connection conn=cp.getConnection();
try {
//conn.setAutoCommit(false);
String sql="select * from book where id=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setInt(1, id);
ResultSet rs=pst.executeQuery();
Book book = new Book();
while(rs.next()){
return (Book)populate(rs);
}
rs.close();
pst.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public PageInfo queryBooksByAthor(int pageNo,int pageSize,String athor) {//按作者查询
String sql="select * from book where bookathor=?";
PagedStatement pst=PageFactory.getPagedStatementInstance(sql,athor, pageNo, pageSize);
pst.registerPopulate(this);
return pst.executePagedQuery();
}
public PageInfo queryBooksByCompany(int pageNo,int pageSize,String company) {//按公司查询
String sql="select * from book where bookcompany=?";
PagedStatement pst=PageFactory.getPagedStatementInstance(sql,company, pageNo, pageSize);
pst.registerPopulate(this);
return pst.executePagedQuery();
}
public PageInfo queryBooksByName(int pageNo,int pageSize,String name) {//按书名查询
String sql="select * from book where bookname=?";
PagedStatement pst=PageFactory.getPagedStatementInstance(sql,name, pageNo, pageSize);
pst.registerPopulate(this);
return pst.executePagedQuery();
}
/**
* 模糊查询 按书名
*/
public PageInfo queryBooksByLike(int pageNo,int pageSize,String name) {//按书名查询
String sql="select * from book where bookname like ?";
PagedStatement pst=PageFactory.getPagedStatementInstance(sql,"%"+name+"%", pageNo, pageSize);
pst.registerPopulate(this);
return pst.executePagedQuery();
}
/**
* 按类型查询 03 09
*/
public PageInfo queryBooksByCode(int pageNo,int pageSize,int code) {//按书的类型查询所有
String sql="select * from book where code=?";
PagedStatement pst=PageFactory.getPagedStatementInstance(sql,code, pageNo, pageSize);
pst.registerPopulate(this);
return pst.executePagedQuery();
}
/*
* 更改图书信息
*/
public boolean updateBook(Book book) {
ConnectionProvider cp = new ConnectionProvider();
Connection conn=cp.getConnection();
try {
//conn.setAutoCommit(false);
String sql="update book set bookname=?,bookathor=?,code=?,bookprice=?,discount=?,bookorder=?,isbn=?,wordcount=?,bookcompany=?,printtime=?,presstime=?,uri=? ,bookcount=?,discription=? where id=?";
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1, book.getBookName());
pst.setString(2, book.getBookAthor());
pst.setInt(3, book.getCode());
pst.setFloat(4, book.getBookPrice());
pst.setFloat(5, book.getDiscount());
pst.setInt(6, book.getBookOrder());
pst.setInt(7, book.getIsbn());
pst.setInt(8, book.getWordCount());
pst.setString(9, book.getBookCompany());
pst.setString(10, book.getPrintTime());//出版时间
pst.setString(11, book.getPressTime());//印刷时间
pst.setString(12, book.getUri());
pst.setInt(13, book.getBookCount());
pst.setString(14, book.getDiscription());
pst.setInt(15, book.getId());
boolean b=pst.executeUpdate()==1?false:true;
//conn.commit();
pst.close();
conn.close();
return b;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
/**
* 组装对象,提供代码的重用性
*/
public Object populate(ResultSet rs) {
Book book = new Book();
try {
book.setId(rs.getInt("id"));
book.setBookName(rs.getString("bookname"));
book.setBookAthor(rs.getString("bookathor"));
book.setCode(rs.getInt("code"));
book.setBookPrice(rs.getFloat("bookprice"));
book.setDiscount(rs.getFloat("discount"));
book.setBookOrder(rs.getInt("bookorder"));
book.setIsbn(rs.getInt("isbn"));
book.setWordCount(rs.getInt("wordcount"));
book.setBookCompany(rs.getString("bookcompany"));
book.setPrintTime(rs.getString("printtime"));
book.setPressTime(rs.getString("presstime"));
book.setUri(rs.getString("uri"));
book.setBookCount(rs.getInt("bookcount"));
book.setDiscription(rs.getString("discription"));
book.setInTime(rs.getDate("in_time"));
} catch (SQLExcep
没有合适的资源?快使用搜索试试~ 我知道了~
基于JSP的网上书店
共282个文件
jpg:71个
class:65个
java:64个
需积分: 0 4 下载量 94 浏览量
2009-06-27
08:01:06
上传
评论
收藏 2.46MB RAR 举报
温馨提示
是学习jsp的一个不错的示例,里面用到很多有用的组件,你可以模仿着学习和应用。
资源推荐
资源详情
资源评论
收起资源包目录
基于JSP的网上书店 (282个子文件)
BookDAOImp.class 8KB
UpdateBook.class 6KB
AddBook.class 6KB
UserDAOImp.class 5KB
RandomValidateCode.class 5KB
PagedStatementDB2Impl.class 4KB
DBUtil.class 4KB
PagedStatement.class 4KB
StoreDAOImp.class 4KB
myfilter.class 4KB
PagedStatementSqlServerImpl.class 4KB
Book.class 3KB
PagedStatementOracleImpl.class 3KB
PagedStatementMySqlImpl.class 3KB
UserLoginServlet.class 3KB
UserBookInfoServlet.class 3KB
UserShoppingServlet.class 3KB
UserIndexServlet.class 3KB
AdminLogin.class 2KB
deleteBook.class 2KB
QueryBook.class 2KB
UpdateUserServlet.class 2KB
UserAddBook.class 2KB
BookBO.class 2KB
UserBuyBook.class 2KB
UserBO.class 2KB
UserFindPassword.class 2KB
BookTypeDAOImpl.class 2KB
UserRegistServlet.class 2KB
deleteBookReal.class 2KB
User.class 2KB
PageFactory.class 2KB
UserCheckUserName.class 2KB
UpdateBookShowBookInfo.class 2KB
UserAddBookServlet.class 2KB
PageInfoImpl.class 2KB
Store.class 2KB
UserDeleteSessionBook.class 2KB
CheckUserServlet.class 2KB
AdminDAOImp.class 2KB
UserSearchBook.class 2KB
BaseServlet.class 2KB
DeleteUserServlet.class 2KB
ValidateCodeServlet.class 2KB
UserClearListServlet.class 1KB
StoreBO.class 1KB
QuitLoginServlet.class 1KB
ConnectionProvider.class 1KB
UserModifyServlet.class 1KB
AdminQuit.class 1KB
BookTypeBO.class 960B
BookType.class 946B
Admin.class 921B
AdminBO.class 858B
DataSourceProvider.class 796B
BookDAO.class 721B
ResourceLoader.class 706B
PagedStatement$1.class 689B
PageInfo.class 477B
UserDAO.class 414B
StoreDAO.class 408B
BookTypeDAO.class 300B
AdminDAO.class 197B
IPopulate.class 189B
Pagable.class 189B
.classpath 870B
login.css 11KB
findpass.css 11KB
gouwuche.css 11KB
regist.css 11KB
admin.css 3KB
search.css 2KB
index.css 2KB
user.css 962B
menu.css 948B
bookInfo.css 166B
Thumbs.db 157KB
Thumbs.db 45KB
Mstore_beta.GIF 17KB
b2c.gif 3KB
reg.gif 2KB
zfb.gif 2KB
top100.gif 1KB
ValidateCode.gif 1KB
biaoshi.gif 1KB
query.gif 408B
drop1.gif 290B
drop2.gif 289B
left1.gif 288B
left2.gif 287B
right1.gif 286B
right2.gif 286B
calendar.gif 236B
star_red.gif 208B
close.gif 106B
zoom.gif 71B
sqljdbc.jar 570KB
mysql-connector-java-5.0.3-bin.jar 482KB
standard.jar 385KB
commons-io.jar 82KB
共 282 条
- 1
- 2
- 3
资源评论
liuyugyan
- 粉丝: 5
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功