图书管理系统增删查改jspservlet基础项目BaseDao.docx

上传人:b****6 文档编号:7101124 上传时间:2023-01-17 格式:DOCX 页数:49 大小:32.57KB
下载 相关 举报
图书管理系统增删查改jspservlet基础项目BaseDao.docx_第1页
第1页 / 共49页
图书管理系统增删查改jspservlet基础项目BaseDao.docx_第2页
第2页 / 共49页
图书管理系统增删查改jspservlet基础项目BaseDao.docx_第3页
第3页 / 共49页
图书管理系统增删查改jspservlet基础项目BaseDao.docx_第4页
第4页 / 共49页
图书管理系统增删查改jspservlet基础项目BaseDao.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

图书管理系统增删查改jspservlet基础项目BaseDao.docx

《图书管理系统增删查改jspservlet基础项目BaseDao.docx》由会员分享,可在线阅读,更多相关《图书管理系统增删查改jspservlet基础项目BaseDao.docx(49页珍藏版)》请在冰豆网上搜索。

图书管理系统增删查改jspservlet基础项目BaseDao.docx

图书管理系统增删查改jspservlet基础项目BaseDao

这是图书管理系统的课后作业增删查改BaseDao

jsp提交到servlet

BaseDao.java数据库操作通用类

packagecombook.dao;

importjava.sql.*;

import.dao.util.ConfigManager;

importcommon.*;

publicclassBaseDao{//数据库操作通用类

protectedConnectionconn;

/**定义静态变量接收加载驱动*/

privatestaticStringdriver;

/**定义静态变量得到连接*/

privatestaticStringurl;

privatestaticStringuserName;//数据库用户名

privatestaticStringpassword;//数据库密码

//静态的Connection对象

static{

driver=ConfigManager.getInstance().getString("driver");

url=ConfigManager.getInstance().getString("url");

userName=ConfigManager.getInstance().getString("userName");

password=ConfigManager.getInstance().getString("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){

e.printStackTrace();

}

returntrue;

}

//增删改的方法子类可以调用这个方法帮助执行sql语句

publicintexecute(Stringsql,Object[]params){

try{

ps=conn.prepareStatement(sql);//预编译传过来的sql语句

if(params!

=null){//如果子类传过来的参数不为空的话遍历循环判断使参数兼容

for(inti=0;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="";//赋值为空

ps.setString((i+1),(String)obj);//默认设置为String类型

}

}

}//执行sql

intcount=ps.executeUpdate();

returncount;

}catch(SQLExceptione){

e.printStackTrace();

return0;

}

}

//获取结果集的方法

publicResultSetexcuteSql(Stringsql,Object[]params){

try{

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]);

}

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnrs;

}

publicbooleancloseResource(){

if(rs!

=null){

try{

rs.close();

}catch(SQLExceptione){

e.printStackTrace();

returnfalse;

}

}

if(ps!

=null){

try{

ps.close();

}catch(SQLExceptione){

e.printStackTrace();

returnfalse;

}

}

if(conn!

=null){

try{

conn.close();

conn=null;

}catch(SQLExceptione){

e.printStackTrace();

returnfalse;

}

}

returntrue;

}

//方法重载如果需要关闭几个资源就选择哪个方法

publicvoidcloseResource(Connectionconn){

if(conn==null){

try{

conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

}

Dao层接口--BookDao.java

packagecombook.dao;

importjava.util.List;

importcombook.dto.Book;

importcommon.dto.PageDto;

publicinterfaceBookDao{

publicListgetBooksList(PageDtopagedto)throwsException;//获得图书集合的方法--所有信息

//增加一本图书信息

publicintinsertBooks(Bookbook)throwsException;

//根据图书编号删除新闻

publicintdelete(intbid)throwsException;

//修改信息--传入的是图书对象

publicintupdate(Bookbook)throwsException;

//根据图书编号查找该图书

//根据图书编号查找该图书

publicBookquery(intbid)throwsException;

publicListquery(Stringbookname)throwsException;

//获得总记录的方法

publicintgetAllRowCount()throwsException;

}

 

BookImpl.java实现类实现了接口继承了BaseDao.java

packagecombook.dao.impl;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjava.util.ArrayList;

importjava.util.List;

 

importcombook.dao.BaseDao;

importcombook.dao.BookDao;

importcombook.dto.Book;

importcommon.dto.PageDto;

publicclassBookImplextendsBaseDaoimplementsBookDao{

//1、查询所有信息返回一个带有泛型的集合

publicListgetNewsList()throwsException{

//定义一个集合集合是对应的要返回出去的泛型集合

ListbookList=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;

}

//获得数据库中所有的图书信息

publicListgetBooksList(PageDtopagedto)throwsException{

//新建一个带有book泛型的集合

ListbookList=newArrayList();

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("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;

}

//向表中插入新书的方法传入的是图书对象返回影响的行数

publicintinsertBooks(Bookbook)throwsException{

super.getConnection();//第一步获得与数据库的连接

//新建一个参数的数组填充占位符

Objectparams[]=newObject[5];

params[0]=book.getBid();

params[1]=book.getBookName();

params[2]=book.getPrice();

params[3]=book.getImage();

params[4]=book.getStock();

Stringsql="insertintobookvalues(?

?

?

?

?

)";

//预编译sql语句

ps=conn.prepareStatement(sql);

//执行更新数据库的sql语句操作

intcount=super.execute(sql,params);

super.closeResource();

returncount;

}

//删除图书的方法根据穿过来的图书id

publicintdelete(intbid)throwsException{

super.getConnection();//第一步获得与数据库的连接

//填充占位符

Objectparams[]=newObject[1];

params[0]=bid;

Stringsql="deletefrombookwherebid=?

";//删除的sql语句

//预编译sql语句

ps=conn.prepareStatement(sql);

//调用父类的执行sql

intcount=super.execute(sql,params);

//释放资源

super.closeResource();

//返回受影响的行数

returncount;

}

//修改图书的方法传入图书的对象

publicintupdate(Bookbook)throwsException{

super.getConnection();//第一步获得与数据库的连接

//填充占位符

Objectparams[]=newObject[4];

params[0]=book.getBookName();

params[1]=book.getPrice();

params[2]=book.getImage();

params[3]=book.getStock();

Stringsql="updatebooksetbookname=?

b_price=?

image=?

stock=?

";

ps=conn.prepareStatement(sql);

intcount=super.execute(sql,params);

super.closeResource();

returncount;

}

publicBookquery(intbid)throwsException{

super.getConnection();//第一步获得与数据库的连接

Bookbook=newBook();

//填充占位符

Objectparams[]=newObject[1];

params[0]=bid;

Stringsql="select*frombookswherebid=?

";

conn.prepareStatement(sql);

rs=super.excuteSql(sql,params);

if(rs.next()){

//把结果集中的图书信息封装到图书对象中去

book.setBid(rs.getInt("bid"));

book.setBookName(rs.getString("bookName"));

book.setImage(rs.getString("image"));

book.setPrice(rs.getDouble("b_price"));

book.setStock(rs.getInt("stock"));

}

super.closeResource();

returnbook;

}

publicListquery(Stringbookname)throwsException{

super.getConnection();//第一步获得与数据库的连接

//新建一个带有book泛型的集合

ListbookList=newArrayList();

//填充占位符

//Objectparams[]=newObject[1];

//params[0]=bookname;

Stringsql="select*frombookswherebooknamelike?

";

ps=conn.prepareStatement(sql);

ps.setString(1,"%"+bookname+"%");

//rs=super.excuteSql(sql,params);

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(rs.getDouble("b_price"));

book.setStock(rs.getInt("stock"));

bookList.add(book);

}

super.closeResource();

returnbookList;

}

publicintgetAllRowCount()throwsException{

super.getConnection();//获得连接

intcount=0;

//查找到所有记录

Stringsql="selectcount(*)frombooks";

ps=conn.prepareStatement(sql);//预编译sql语句

rs=ps.executeQuery();//返回一个结果集

if(rs.next()){

count=rs.getInt

(1);//获得结果集的第一条

}

super.closeResource();

returncount;

}

}

 

用户表UserInfoDao.java接口

packagecombook.dao;

importjava.util.List;

importcombook.dto.Book;

importcombook.dto.UserInfo;

importcommon.dto.PageDto;

publicinterfaceUserInfoDao{

//传入一个用户的对象判断这个对象是否在数据库中存在

publicintqueryObject(UserInfouser)throwsException;

//根据用户名查找该数据库表中有没有重复的用用户

publicintquery(StringuserName)throwsException;

//增加一个用户信息--传入一个用户对象

publicintinsertUserInfo(UserInfouser)throwsException;

//修改信息--传入的是用户对象

publicintupdate(UserInfouser)throwsException;

}

UserInfoDaoImpl实现类

 

packagecombook.dao.impl;

importjava.sql.SQLException;

importjava.util.List;

 

importcombook.dao.BaseDao;

importcombook.dao.UserInfoDao;

importcombook.dto.Book;

importcombook.dto.UserInfo;

importcommon.dto.PageDto;

publicclassUserInfoDaoImplextendsBaseDaoimplementsUserInfoD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1