图书管理系统增删查改jspservlet基础项目BaseDaoWord格式.docx
- 文档编号:20194815
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:49
- 大小:32.57KB
图书管理系统增删查改jspservlet基础项目BaseDaoWord格式.docx
《图书管理系统增删查改jspservlet基础项目BaseDaoWord格式.docx》由会员分享,可在线阅读,更多相关《图书管理系统增删查改jspservlet基础项目BaseDaoWord格式.docx(49页珍藏版)》请在冰豆网上搜索。
password"
}
protectedResultSetrs;
protectedStatementstmt;
protectedPreparedStatementps;
//获取的方法
publicbooleangetConnection(){
if(conn!
=null){//判断连接对象是否为空
returnfalse;
}
try{
Class.forName(driver);
//加载驱动
//根据url,用户名和密码获取获取的是connection对象
conn=DriverManager.getConnection(url,userName,password);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
returntrue;
//增删改的方法子类可以调用这个方法帮助执行sql语句
publicintexecute(Stringsql,Object[]params){
ps=conn.prepareStatement(sql);
//预编译传过来的sql语句
if(params!
=null){//如果子类传过来的参数不为空的话遍历循环判断使参数兼容
for(inti=0;
i<
params.length;
i++){//遍历参数数组
Objectobj=params[i];
//参数是Object类型的所以Object先接收然后判断
if(objinstanceofString){
ps.setString((i+1),(String)obj);
//如果该参数是String类型的就强转设置数组的的该位置元素是String类型
}elseif(objinstanceofInteger){
ps.setInt((i+1),(Integer)obj);
}elseif(obj==null){//这样判断一下因为有图片传入判断不了类型
obj="
"
;
//赋值为空
//默认设置为String类型
}
}
}//执行sql
intcount=ps.executeUpdate();
returncount;
return0;
//获取结果集的方法
publicResultSetexcuteSql(Stringsql,Object[]params){
rs=ps.executeQuery(sql);
for(inti=0;
i++){
if(params[i]instanceofString){
ps.setString((i+1),(String)params[i]);
}elseif(params[i]instanceofInteger){
ps.setInt((i+1),(Integer)params[i]);
}
returnrs;
publicbooleancloseResource(){
if(rs!
=null){
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
if(ps!
ps.close();
conn.close();
conn=null;
//方法重载如果需要关闭几个资源就选择哪个方法
publicvoidcloseResource(Connectionconn){
if(conn==null){
}
Dao层接口--BookDao.java
importjava.util.List;
importcombook.dto.Book;
importcommon.dto.PageDto;
publicinterfaceBookDao{
publicList<
Book>
getBooksList(PageDtopagedto)throwsException;
//获得图书集合的方法--所有信息
//增加一本图书信息
publicintinsertBooks(Bookbook)throwsException;
//根据图书编号删除新闻
publicintdelete(intbid)throwsException;
//修改信息--传入的是图书对象
publicintupdate(Bookbook)throwsException;
//根据图书编号查找该图书
publicBookquery(intbid)throwsException;
query(Stringbookname)throwsException;
//获得总记录的方法
publicintgetAllRowCount()throwsException;
BookImpl.java实现类实现了接口继承了BaseDao.java
packagecombook.dao.impl;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.util.ArrayList;
importcombook.dao.BaseDao;
importcombook.dao.BookDao;
publicclassBookImplextendsBaseDaoimplementsBookDao{
//1、查询所有信息返回一个带有泛型的集合
publicList<
getNewsList()throwsException{
//定义一个集合集合是对应的要返回出去的泛型集合
List<
bookList=newArrayList<
();
super.getConnection();
//获得连接通过父类的方法
conn.prepareStatement("
select*fromnews"
rs=ps.executeQuery();
//返回结果集
while(rs.next()){//循环结果集中的数据判断结果集中是否还有下一个容
Bookbook=newBook();
//创建一个实例对象
//把结果集中的图书信息封装到图书对象中去
book.setBid(rs.getInt("
bid"
));
book.setBookName(rs.getString("
bookName"
book.setImage(rs.getString("
image"
book.setPrice(Double.parseDouble(rs.getString("
b_price"
)));
book.setStock(rs.getInt("
stock"
//将图书对象添加到集合中去因为集合是带有图书泛型所以不需要强转直接添加图书对象
bookList.add(book);
//调用父类方法释放资源
super.closeResource();
returnbookList;
//获得数据库中所有的图书信息
getBooksList(PageDtopagedto)throwsException{
//新建一个带有book泛型的集合
List<
super.getConnection();
//第一步获得与数据库的连接
intstart=pagedto.getStartIndex();
//分页查询开始
intend=pagedto.getEndIndex();
//分页查询结束
//写分页查询的sql语句
Stringsql="
select*from(selectb.*,rownumrnfrombooksb)wherern>
=?
andrn<
?
ps=conn.prepareStatement(sql);
//预编译sql语句
ps.setInt(1,start);
//设置第一个参数的值
ps.setInt(2,end);
//设置第二个参数的值
//执行查询语句
rs=ps.executeQuery();
//循环结果集的数据
while(rs.next()){
//实例化一个图书的对象
Bookbook=newBook();
//把结果集中的图书信息封装到图书对象中去
book.setBid(rs.getInt("
book.setBookName(rs.getString("
book.setImage(rs.getString("
book.setPrice(Double.parseDouble(rs.getString("
book.setStock(rs.getInt("
//将图书对象添加到集合中去因为集合是带有图书泛型所以不需要强转直接添加图书对象
bookList.add(book);
super.closeResource();
returnbookList;
//向表中插入新书的方法传入的是图书对象返回影响的行数
publicintinsertBooks(Bookbook)throwsException{
//新建一个参数的数组填充占位符
Objectparams[]=newObject[5];
params[0]=book.getBid();
params[1]=book.getBookName();
params[2]=book.getPrice();
params[3]=book.getImage();
params[4]=book.getStock();
insertintobookvalues(?
?
)"
//预编译sql语句
//执行更新数据库的sql语句操作
intcount=super.execute(sql,params);
returncount;
//删除图书的方法根据穿过来的图书id
publicintdelete(intbid)throwsException{
//填充占位符
Objectparams[]=newObject[1];
params[0]=bid;
deletefrombookwherebid=?
//删除的sql语句
//调用父类的执行sql
//释放资源
//返回受影响的行数
//修改图书的方法传入图书的对象
publicintupdate(Bookbook)throwsException{
Objectparams[]=newObject[4];
params[0]=book.getBookName();
params[1]=book.getPrice();
params[2]=book.getImage();
params[3]=book.getStock();
updatebooksetbookname=?
b_price=?
image=?
stock=?
publicBookquery(intbid)throwsException{
Bookbook=newBook();
select*frombookswherebid=?
conn.prepareStatement(sql);
rs=super.excuteSql(sql,params);
if(rs.next()){
book.setPrice(rs.getDouble("
returnbook;
query(Stringbookname)throwsException{
//Objectparams[]=newObject[1];
//params[0]=bookname;
select*frombookswherebooknamelike?
ps.setString(1,"
%"
+bookname+"
//rs=super.excuteSql(sql,params);
Bookbook=newBook();
publicintgetAllRowCount()throwsException{
//获得连接
intcount=0;
//查找到所有记录
selectcount(*)frombooks"
//返回一个结果集
count=rs.getInt
(1);
//获得结果集的第一条
用户表UserInfoDao.java接口
importcombook.dto.UserInfo;
publicinterfaceUserInfoDao{
//传入一个用户的对象判断这个对象是否在数据库中存在
publicintqueryObject(UserInfouser)throwsException;
//根据用户名查找该数据库表中有没有重复的用用户
publicintquery(StringuserName)throwsException;
//增加一个用户信息--传入一个用户对象
publicintinsertUserInfo(UserInfouser)throwsException;
//修改信息--传入的是用户对象
publicintupdate(UserInfouser)throwsException;
UserInfoDaoImpl实现类
importjava.sql.SQLException;
importcombook.dao.UserInfoDao;
publicclassUserInfoDaoImplextendsBaseDaoimplementsUserInfoD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 增删 jspservlet 基础 项目 BaseDao