package daoimpl;
import java.sql.*;
import java.util.*;
import dao.IBookDAO;
import entity.Book;
public class BookDAO implements IBookDAO {
public Book getBookById(int bookId) {
PublisherDAO publisherDao = new PublisherDAO();
BookTypeDAO bookTypeDao = new BookTypeDAO();
Book obj = null;
Connection conn = new DBean().getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = "select * from book where bookId=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, bookId);
rs = pstmt.executeQuery();
if (rs.next()) {
obj = new Book();
obj.setBookId(bookId);
obj.setBookName(rs.getString("bookName"));
obj.setBookAuthor(rs.getString("bookAuthor"));
obj.setBookPublisher(publisherDao.get(rs
.getInt("bookPublisher")));
obj.setBookPublishDate(rs.getString("bookPublishDate"));
obj.setBookPrintDate(rs.getString("bookprintdate"));
obj.setBookCharacterCount(rs.getInt("bookcharactercount"));
obj.setBookPublishVersion(rs.getInt("bookpublishversion"));
obj.setBookPrintVersion(rs.getInt("bookprintversion"));
obj.setBookPageCount(rs.getInt("bookpagecount"));
obj.setBookSize(rs.getString("booksize"));
obj.setBookISBN(rs.getString("bookISBN"));
obj.setBookImage(rs.getString("bookImage"));
obj.setBookCount(rs.getInt("bookCount"));
obj.setBookPrice(Double.parseDouble(rs.getBigDecimal("bookPrice")+""));
obj.setBookDiscount(rs.getFloat("bookDiscount"));
obj.setBookDigist(rs.getString("bookDigist"));
obj.setFirstBookType(rs.getString("firstbookTypeId"));
obj.setSecondBookType(rs.getString("secondbookTypeId"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return obj;
}
public List<Book> getBookByPageAndOrder(int page, int pageSize,
String orderBy) {
String sql = "SELECT TOP " + pageSize
+ " * FROM Book where bookId not in " + "(select TOP "
+ (pageSize * (page - 1)) + "bookId from book order by " + orderBy
+ ") order by " + orderBy;
return getBookBySQL(sql);
}
public List<Book> getBookByPage(int page, int pageSize) {
page = page<1?1:page;
String sql = "SELECT TOP " + pageSize
+ " * FROM Book where bookId not in " + "(select TOP "
+ (pageSize * (page - 1)) + "bookId from book) ";
return getBookBySQL(sql);
}
public List<Book> getBookByPageAndCondition(int page, int pageSize,
String orderBy, String whereCondition) {
page = page<1?1:page;
String sql = "SELECT TOP " + pageSize + " * FROM Book where "
+ (whereCondition.equals("")?"1=1":whereCondition)
+ " and bookId not in " + "(select TOP "
+ (pageSize * (page - 1)) + "bookId from book where "
+ (whereCondition.equals("")?"1=1":whereCondition)
+ " order by " + orderBy + ") " + " order by " + orderBy;
return getBookBySQL(sql);
}
public List<Book> getAllBookByPage(int pageNum, int pageSize) {
String sql = "select * from (select *,row_number() over (order by bookId) as rownum from [book]) as a where rownum between "
+ ((pageNum - 1) * pageSize + 1)
+ " and "
+ (pageNum * pageSize) + " ";
return getBookBySQL(sql);
}
public List<Book> getTopDiscountBook() {
String sql = "SELECT TOP 5 * from book order by bookDiscount";
return this.getBookBySQL(sql);
}
public List<Book> getMostNewBook() {
String sql = "SELECT TOP 5 * from book order by bookPublishDate desc";
return this.getBookBySQL(sql);
}
private List<Book> getBookBySQL(String sql) {
Connection conn = new DBean().getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
PublisherDAO pDao = new PublisherDAO();
BookTypeDAO tDao = new BookTypeDAO();
List<Book> books = new ArrayList<Book>();
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
Book obj = new Book();
obj.setBookId(rs.getInt("bookId"));
obj.setBookName(rs.getString("bookName"));
obj.setBookAuthor(rs.getString("bookAuthor"));
obj.setBookPublisher(pDao.get(rs.getInt("bookPublisher")));
obj.setBookPublishDate(rs.getString("bookpublishdate"));
obj.setBookPrintDate(rs.getString("bookprintdate"));
obj.setBookCharacterCount(rs.getInt("bookcharactercount"));
obj.setBookPublishVersion(rs.getInt("bookpublishversion"));
obj.setBookPrintVersion(rs.getInt("bookprintversion"));
obj.setBookPageCount(rs.getInt("bookpagecount"));
obj.setBookSize(rs.getString("booksize"));
obj.setBookISBN(rs.getString("bookISBN"));
obj.setBookImage(rs.getString("bookImage"));
obj.setBookCount(rs.getInt("bookCount"));
obj.setBookPrice(Double.parseDouble(rs.getBigDecimal("bookPrice")+""));
obj.setBookDiscount(rs.getFloat("bookDiscount"));
obj.setBookDigist(rs.getString("bookDigist"));
obj.setFirstBookType(rs.getString("firstbookTypeId"));
obj.setSecondBookType(rs.getString("secondbookTypeId"));
books.add(obj);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
GenericDAO.close(conn, pstmt, rs);
}
return books;
}
/**
* 获取指定条件的书本的数量
* @param condition sql语句的where条件
* **/
public int getCount(String condition) {
String sql;
if(condition!=null && !condition.trim().equals("")){
sql ="select count(*) from book where " + condition;
}else{
sql="select count(*) from book ";
}
Connection conn = new DBean().getConnection();
Statement st = null;
ResultSet rs = null;
try{
st = conn.createStatement();
rs = st.executeQuery(sql);
if(rs.next()){
return rs.getInt(1);
}
}catch(SQLException ex){
ex.printStackTrace();
}finally{
GenericDAO.close(conn, st, rs);
}
return 0;
}
public int updateBookDiscount(float bookDiscount,int bookId){
int returnValue = 0;
String sql="update [book] set bookDiscount=? where bookId=?" ;
Connection conn = new DBean().getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
pstmt = conn.prepareStatement(sql);
pstmt.setFloat(1,bookDiscount);
pstmt.setInt(2, bookId);
returnValue=pstmt.executeUpdate();
return returnValue;
}catch(SQLException ex){
ex.printStackTrace();
}finally{
GenericDAO.close(conn, pstmt, rs);
}
return 0;
}
public int updateBook(Book book) {
int returnValue = 0;
String sql = " UPDATE [Bookshop].[dbo].[book]" + "SET [bookName] = ?"
+ ",[bookAuthor] = ?" + ",[bookPublisher] =?"
+ ",[bookPublishDate] =?" + ",[bookPrintDate] = ?"
+ ",[bookCharacterCount] =?" + ",[bookPublishVersion] = ?"
+ ",[bookPrintVersion] = ?" + ",[bookPageCount] = ?"
+ ",[bookSize] = ?" + ",[bookISBN] = ?" + ",[bookImage] = ?"
+ ",[bookCount] = ?" + ",[bookPrice] = ?"
+ ",[bookDiscount] = ?" + ",[bookDigist] = ?"
+",[firstBookTypeId] = ?"+ ",[secondBookTypeId] = ?"
+ " WHERE bookId="+ book.getBookId();
String[] params = new String[] { book.getBookName(),
book.getBookAuthor(),
book.getBookPublishers() + "",
book.getBookPublishDate(), book.getBookPrintDate(),
book.getBookCharacterCount() + "",
book.getBookPublishVersion() + "",
book.getBookPrintVersion() + "", book.getBookPageCount() + "",
book.getBookSize(), book.getBookISBN(), book.getBookImage(),
book.getBookCount() + "", book.getBookPrice() + "",
book.getBookDiscount() + "",
book.getBookDigist(),
book.getFirstBookType() + "",//
book.getSecondBookType() + ""//
};
System.out.println(book.getBookId());
returnValue = GenericDAO.executeSQL(sql, params);
return returnValue;
}
public int insertBook(Book book) {
int returnValue = 0;
String sql = " insert into book( [bookName] "
+ ",[bookAuthor] " + ",[bookPublisher] "
+ ",[bookPublishDate]" +
没有合适的资源?快使用搜索试试~ 我知道了~
模拟当当网,购物网站设计
共842个文件
jpg:345个
gif:201个
class:66个
5星 · 超过95%的资源 需积分: 4 9 下载量 35 浏览量
2011-06-15
18:32:29
上传
评论
收藏 4.16MB ZIP 举报
温馨提示
利用javascript、servlet、sql2005技术、实现简单的网站购物车、订单、收藏页面的实现 还有后台管理功能 要完善的还有很多、可是、功能比起一般的项目还是要完善的多的
资源推荐
资源详情
资源评论
收起资源包目录
模拟当当网,购物网站设计 (842个子文件)
BookDAO.class 10KB
OrderDAO.class 8KB
CommentDAO.class 7KB
UserDaoImpl.class 7KB
PublisherDAO.class 5KB
BookTypeDAO.class 5KB
Book.class 4KB
makeOrder.class 4KB
favouriteDAO.class 4KB
updateBook.class 4KB
OrderDetailDAO.class 4KB
FileUploader.class 4KB
addBook.class 4KB
addToCart.class 3KB
comment.class 3KB
cartFeeCalc.class 3KB
TestUserDAO.class 3KB
Register.class 3KB
Login.class 3KB
Order.class 3KB
ShopCart.class 3KB
shouCang.class 3KB
updateCart.class 2KB
addShowType.class 2KB
removeCart.class 2KB
yanzheng.class 2KB
deleteUser.class 2KB
ProvincialDAO.class 2KB
sousuo.class 2KB
updatePublisher.class 2KB
User.class 2KB
OrderDetail.class 2KB
Comment.class 2KB
GenericDAO.class 2KB
updateDiscount.class 2KB
dealShowType.class 2KB
addBookType.class 2KB
addPublisher.class 2KB
deleteComment.class 2KB
FileUploadAssit.class 2KB
BookType.class 2KB
StringUtil.class 1KB
exit.class 1KB
DBean.class 1KB
Order1.class 1KB
adminDAO.class 1KB
AccountDAO.class 1KB
Account.class 1KB
City.class 1020B
TestDBConnection.class 943B
LoginBiz.class 889B
Provincial.class 868B
Publisher.class 859B
CartItem.class 836B
IBookDAO.class 738B
TestUpdateBook.class 676B
TestGenericDAO.class 661B
IUserDao.class 461B
IPublisherDAO.class 361B
ICommentDAO.class 313B
IAccountDAO.class 247B
IBookTypeDAO.class 146B
IOrderDetailDAO.class 115B
IProvincialDAO.class 113B
ICityDAO.class 101B
IOderDAO.class 101B
.classpath 693B
order_form_20110402.css 47KB
order_form1_091230.css 40KB
book.css 38KB
ddhome101116.css 35KB
unite_header_0811.css 29KB
unite_header_1129.css 29KB
unite_header_1101.css 27KB
myorder.css 22KB
login2010.css 21KB
list.css 20KB
shoppingcart.css 18KB
my_dd.css 11KB
mydnew.css 11KB
my_archives.css 11KB
bmap_20101207.css 8KB
style.css 7KB
css1.css 7KB
index.css 6KB
mydd_head.css 6KB
address_pw.css 6KB
smart.css 5KB
login_2010_new.css 4KB
LoginWin2010.css 4KB
mydd_leftnavi.css 4KB
footer.css 3KB
login.css 3KB
footer_cnnic.css 3KB
top.css 3KB
css.css 3KB
calcFee.css 3KB
login.css 3KB
admin.css 2KB
cart.css 2KB
共 842 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
- aa9294592752013-01-08B2C网站设计 MVC设计模式 很不错
l774094098
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- openEuler-22.03-LTS-SP3-aarch64-dvd.zip.001
- 图像分割-基于Pytorch在VOC+Cityscapes上训练DeepLabv3+图像分割算法-附项目源码+详细流程教程
- 基于Java小区物业管理系统(源码+使用文档)
- 浙江省杭州市百度地图AOI
- 基于Java画图形学(源码+使用文档)
- JavaProject1.zip
- Python爬虫课程设计-爬取图书信息进行可视化分析(说明文档 + 源码)
- 基于Objective-C的地方性首饰专卖设计源码
- 数据库课程设计-jsp宾馆信息管理系统(开发文档 + 源码 + 数据库文件)
- allegro-free-viewer-17.2
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功