package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.UUID;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;
import entity.Book;
import utils.JdbcUtil;
import utils.PageBean;
public class BooksDao {
public void listAllBooks(PageBean<Book> pb) throws Exception {
//得到总共的记录数
int totalCount = this.getTotalCount();
pb.setTotalCount(totalCount);
pb.setTotalPage(totalCount, pb.getPageCount());
if(pb.getCurrentPage()<=0){
pb.setCurrentPage(1);
}else if(pb.getCurrentPage()>pb.getTotalPage()){
pb.setCurrentPage(pb.getTotalPage());
}
int index = 4*(pb.getCurrentPage()-1);
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "SELECT *FROM books LIMIT ?,?";
List<Book> books = qr.query(sql, new BeanListHandler<Book>(Book.class),index,pb.getPageCount());
//这一句代码非常的关键,将查询到的数据封装进pageBean对象中。
pb.setPageData(books);
}
public int getTotalCount() throws Exception{
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "SELECT COUNT(*) FROM books";
Long totalCount = qr.query(sql, new ScalarHandler<Long>());
return totalCount.intValue();
}
@Test
/* public List<Book> listAllBooks() throws Exception {
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "SELECT *FROM books";
List<Book> books = qr.query(sql, new BeanListHandler<Book>(Book.class));
return books;
// System.out.println(books);
}*/
public Book findById(String id) throws Exception{
/*Connection conn;
conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();*/
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "SELECT *FROM books where id=?";
Book book = qr.query( sql, new BeanHandler<Book>(Book.class),id);
return book;
}
public void addBook(Book book) {
/* conn = JdbcUtil.getConnection();
QueryRunner qr = new QueryRunner();*/
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "INSERT INTO books VALUES(?,?,?,?,?)";
String id = UUID.randomUUID().toString().replace("-","");
try {
qr.update( sql, id,book.getBookName(),book.getAuthor(),book.getPublisher(),book.getPrice());
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteBook(String id) {
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "DELETE FROM books WHERE id=?";
try {
qr.update( sql, id);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateBook(Book book) {
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "UPDATE books SET bookName=?,author=?,publisher=?,price=? WHERE id=?";
try {
qr.update( sql, book.getBookName(),book.getAuthor(),book.getPublisher(),book.getPrice(),book.getId());
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Book> queryBook(String bookName) {
try {
QueryRunner qr = JdbcUtil.getQueryRunner();
String sql = "SELECT *FROM books WHERE bookName LIKE ? ";
bookName = bookName+"%";
List<Book> books = qr.query(sql, new BeanListHandler<Book>(Book.class),bookName);
return books;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
利用javaweb技术采用MVC模式开发的在线图书馆管理系统 整个项目采用myeclipse软件开发,该项目可以直接运行在Tomcat服务器上。 1.项目分别利用jsp显示用户查询前端页面及其管理员对图书的增删改查(CURD)功能界面。 2.servlet用作控制器,使用javabean技术对数据进行封装。 3.数据库采用MySQL,利用c3p0连接池进行数据库的连接,分别建users table与books table ; 4.系统具备分页功能,且用户可以进行模糊书目查询。
资源推荐
资源详情
资源评论
收起资源包目录
javaWEB项目——在线图书馆管理系统.zip (56个子文件)
library
.project 1KB
.settings
.jsdtscope 564B
org.eclipse.wst.common.component 480B
org.eclipse.jdt.core.prefs 364B
org.eclipse.wst.common.project.facet.core.xml 414B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
WebRoot
login.jsp 1KB
success.jsp 825B
test.jsp 1KB
WEB-INF
web.xml 3KB
lib
commons-dbutils-1.6.jar 76KB
c3p0-0.9.1.2.jar 596KB
mysql-connector-java-5.1.7-bin.jar 693KB
classes
utils
PageBean.class 2KB
JdbcUtil.class 706B
dao
DbOperator.class 2KB
BooksDao.class 4KB
test
TestDao.class 770B
TestEntity.class 383B
c3p0-config.xml 886B
servlet
LoginServlet.class 2KB
UserQueryServlet.class 2KB
ListAllBooksServlet.class 2KB
TestServlet.class 2KB
UpdateServlet2.class 2KB
AddBookServlet.class 2KB
UpdateServlet.class 2KB
DeleteServlet.class 1KB
RegisterServlet.class 2KB
entity
Book.class 2KB
Admin.class 950B
index.jsp 849B
listbooks.jsp 4KB
META-INF
MANIFEST.MF 39B
register.jsp 1KB
user.jsp 2KB
src
utils
PageBean.java 1KB
JdbcUtil.java 419B
dao
DbOperator.java 1KB
BooksDao.java 4KB
test
TestDao.java 647B
TestEntity.java 141B
c3p0-config.xml 886B
servlet
DeleteServlet.java 885B
UpdateServlet.java 1000B
LoginServlet.java 1KB
TestServlet.java 2KB
RegisterServlet.java 2KB
ListAllBooksServlet.java 2KB
UserQueryServlet.java 1KB
AddBookServlet.java 1KB
UpdateServlet2.java 1KB
entity
Book.java 1KB
Admin.java 410B
.classpath 1KB
共 56 条
- 1
资源评论
- weixin_376682152018-04-12还挺好的,
- 小羽呱呱2018-08-30没有数据库 很坑
尺规作图
- 粉丝: 27
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
- js 实现记住密码功能 js.cookie.min.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功