package com.bie.dao.impl;
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.bie.dao.BookDao;
import com.bie.po.Book;
import com.bie.utils.BaseDao;
/**
* @author BieHongLi
* @version 创建时间:2017年2月23日 上午10:24:02
*
*/
public class BookDaoImpl implements BookDao{
@Override
public List<Book> select(String sql, Object[] arr) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=BaseDao.getCon();//第一步连接数据库
ps=con.prepareStatement(sql);//第二步:预编译
if(arr!=null){
for(int i=0;i<arr.length;i++){
ps.setObject(i+1, arr[i]);
}
}
//第四步执行sql
rs=ps.executeQuery();
List<Book> list=new ArrayList<Book>();
while(rs.next()){
Book book=new Book();
book.setBookid(rs.getInt("bookid"));
book.setBookname(rs.getString("bookname"));
book.setPrice(rs.getDouble("price"));
book.setAuthor(rs.getString("author"));
book.setPic(rs.getString("pic"));
book.setPublish(rs.getString("publish"));
list.add(book);
}
return list;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭资源,避免出现异常
BaseDao.close(con, ps, rs);
}
return null;
}
@Override
public Book getBook(Integer id) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=BaseDao.getCon();//第一步连接数据库
String sql="select * from book where bookid = ? ";
ps=con.prepareStatement(sql);//第二步:预编译
ps.setInt(1, id);
//第四步执行sql
rs=ps.executeQuery();
while(rs.next()){
Book books=new Book();
books.setBookid(rs.getInt("bookid"));
books.setBookname(rs.getString("bookname"));
books.setPrice(rs.getDouble("price"));
books.setAuthor(rs.getString("author"));
books.setPic(rs.getString("pic"));
books.setPublish(rs.getString("publish"));
return books;
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭资源,避免出现异常
BaseDao.close(con, ps, rs);
}
return null;
}
@Override
public List<Book> bookPage(int page, int record) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=BaseDao.getCon();//第一步连接数据库
//第二步书写sql语句
String sql="select * from book limit ?,? ";
ps=con.prepareStatement(sql);//第三步:预编译
//第几页需要设置好是页数减一乘以每页的记录数即是第多少页
ps.setInt(1, (page-1)*record);
ps.setInt(2, record);
//第四步执行sql
rs=ps.executeQuery();
List<Book> list=new ArrayList<Book>();
while(rs.next()){
Book book=new Book();
book.setBookid(rs.getInt("bookid"));
book.setBookname(rs.getString("bookname"));
book.setPrice(rs.getDouble("price"));
book.setAuthor(rs.getString("author"));
book.setPic(rs.getString("pic"));
book.setPublish(rs.getString("publish"));
list.add(book);
}
return list;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭资源,避免出现异常
BaseDao.close(con, ps, rs);
}
return null;
}
@Override
public int getCount(int record) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
//设置初始值为-1
int n=-1;
try {
con=BaseDao.getCon();//第一步连接数据库
//第二步书写sql语句
String sql="select count(*) from book ";
ps=con.prepareStatement(sql);//第三步:预编译
//第四步执行sql
rs=ps.executeQuery();
if(rs.next()){
//获取第一条记录,因为查询count(1)就一条记录,获取即可,即总记录数
n=rs.getInt(1);
//将总记录数除以每页的总记录数然乎向上取整即可
n=(int)Math.ceil(1.0*n/record);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭资源,避免出现异常
BaseDao.close(con, ps, rs);
}
return n;
}
@Override
public boolean insertBook(Book book) {
String sql="insert into book values(0,?,?,?,?,?)";
List<Object> list=new ArrayList<Object>();
list.add(book.getBookname());
list.add(book.getPrice());
list.add(book.getAuthor());
list.add(book.getPic());
list.add(book.getPublish());
boolean mark=BaseDao.addUpdateDelete(sql, list.toArray());
if(mark){
return true;
}else{
return false;
}
}
@Override
public boolean updateBook(Book book) {
String sql="update book SET bookname=?,price=?,author=?,pic=?,publish=? where bookid=? ";
if(book!=null && book.getBookid()!=null){
List<Object> list=new ArrayList<Object>();
list.add(book.getBookname());
list.add(book.getPrice());
list.add(book.getAuthor());
list.add(book.getPic());
list.add(book.getPublish());
list.add(book.getBookid());
boolean mark=BaseDao.addUpdateDelete(sql, list.toArray());
if(mark){
return true;
}else{
return false;
}
}
return false;
}
@Override
public boolean deleteBook(Integer id) {
String sql="delete from book where bookid=? ";
List<Object> list=new ArrayList<Object>();
list.add(id);
boolean mark=BaseDao.addUpdateDelete(sql, list.toArray());
if(mark){
return true;
}else{
return false;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
简易图书管理系统(主要是jsp的练习)
共83个文件
jsp:25个
class:15个
java:15个
3星 · 超过75%的资源 需积分: 50 295 下载量 68 浏览量
2017-06-22
09:25:06
上传
评论 39
收藏 5.21MB RAR 举报
温馨提示
简易图书管理系统(主要是jsp的练习):http://blog.csdn.net/biexiansheng/article/details/70240413 有源码,有博客,就是没有数据库,数据库很简单,自己创建吧。好吧。就这样,祝你开发愉快!!!
资源详情
资源评论
资源推荐
收起资源包目录
bookManage.rar (83个子文件)
bookManage
.project 1KB
WebContent
book.jsp 3KB
show.jsp 425B
doInfo.jsp 1KB
WEB-INF
lib
commons-beanutils-1.8.3.jar 227KB
mysql-connector-java-5.1.11-bin.jar 715KB
jstl-1.2.jar 405KB
commy-web-0.0.1.jar 19KB
commons-logging-1.1.1.jar 59KB
web.xml 428B
detail2.jsp 2KB
register.jsp 3KB
doInfo2.jsp 1KB
logout.jsp 414B
doInfo3.jsp 1KB
admin.jsp 3KB
info.jsp 2KB
doCard.jsp 2KB
search.jsp 889B
images
玩转WEB.jpg 8KB
玩转C++.jpg 8KB
大话Java.jpg 2KB
从入门到精通.gif 21KB
1.png 1.51MB
2.png 1.33MB
4.jpg 642KB
3.jpg 357KB
cart.jsp 2KB
doInfo4.jsp 1KB
searchPassword.jsp 1KB
js
jquery.min.js 90KB
doinsertbook.jsp 1KB
head2.jsp 799B
doupdatebook.jsp 1KB
head.jsp 851B
dosearchPassword.jsp 1015B
META-INF
MANIFEST.MF 39B
doregister.jsp 1KB
login.jsp 2KB
updatebook.jsp 1KB
insertbook.jsp 1KB
detail.jsp 2KB
src
com
bie
service
impl
UserServiceImpl.java 1KB
BookServiceImpl.java 1KB
BookService.java 416B
UserService.java 326B
utils
UTFFilter.java 1KB
BaseDao.java 3KB
dao
UserDao.java 633B
impl
BookDaoImpl.java 6KB
UserDaoImpl.java 3KB
BookDao.java 1KB
po
User.java 1KB
CardItem.java 474B
Book.java 1KB
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 345B
org.eclipse.jdt.core.prefs 670B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jst.j2ee.ejb.annotations.xdoclet.prefs 117B
org.eclipse.core.resources.prefs 57B
org.eclipse.wst.common.component 634B
.jsdtscope 567B
config
db.properties 80B
build
classes
com
bie
service
UserService.class 255B
BookService.class 308B
impl
UserServiceImpl.class 2KB
BookServiceImpl.class 2KB
utils
BaseDao.class 3KB
UTFFilter.class 1KB
book
BookService.class 1KB
dao
impl
UserDaoImpl.class 4KB
BookDaoImpl.class 6KB
BookDao.class 567B
UserDao.class 380B
user
UserServiceTest.class 1KB
po
User.class 2KB
CardItem.class 723B
Book.class 2KB
db.properties 80B
test
com
bie
book
BookService.java 515B
user
UserServiceTest.java 532B
.classpath 1002B
共 83 条
- 1
Biexiansheng
- 粉丝: 571
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- KIMI大模型浏览器插件
- b61fa64a08a02de0e0d49d53bb84c444.amr
- 5ffd9193f6aec31bbf16030a46680dc7.avi
- DA14531-蓝牙传感器连接传输数据固件
- logisim实验MIPS运算器(ALU)设计(内含4位先行进位74182、四位快速加法器、32位快速加法器)-Educoder_logisim里面连线,实现4位先行进位74182和4位快速加法器-C
- 高等数学第一章第二节数列的极限
- Python 版冒泡排序算法源代码
- 基于YOLOv8的教室人脸识别 附源码 预训练模型
- 基于JAVA实现的用于全局监控网络请求错误并记录日志的library
- tensorflow-gpu-2.7.2-cp38-cp38-manylinux2010-x86-64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论7