没有合适的资源?快使用搜索试试~ 我知道了~
图书管理系统增删查改jspservlet基础项目BaseDao.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 157 浏览量
2021-11-19
07:58:39
上传
评论
收藏 49KB DOCX 举报
温馨提示
试读
43页
图书管理系统增删查改jspservlet基础项目BaseDao.docx
资源推荐
资源详情
资源评论
这是图书管理系统的课后作业 增删查改 BaseDao
jsp 提交到 servlet
BaseDao.java 数据库操作通用类
package combook.dao;
import java.sql.*;
import com.dao.ul.CongManager;
import common.*;
public class BaseDao {//数据库操作通用类
protected Connecon conn;
/**定义静态变量接收加载驱动*/
private stac String driver;
/**定义静态变量得到连接*/
private stac String url;
private stac String userName;//数据库用户名
private stac String password;//数据库密码
//静态的 Connecon 对象
stac{
driver=CongManager.getInstance().getString("driver");
url=CongManager.getInstance().getString("url");
userName=CongManager.getInstance().getString("userName");
password=CongManager.getInstance().getString("password");
}
protected ResultSet rs;
protected Statement stmt;
protected PreparedStatement ps;
//获取链接的方法
public boolean getConnecon(){
if(conn!=null){//判断连接对象是否为空
return false;
}
try {
Class.forName(driver);//加载驱动
//根据 url,用户名和密码获取链接 获取的是 connecon 对象
conn=DriverManager.getConnecon(url,userName,password);
} catch (ClassNotFoundExcepon e) {
e.printStackTrace();
} catch (SQLExcepon e) {
e.printStackTrace();
}
return true;
}
//增删改的方法 子类可以调用这个方法 帮助执行 sql 语句
public int execute(String sql,Object[]params){
try {
ps=conn.prepareStatement(sql);//预编译传过来的 sql 语句
if(params!=null){//如果子类传过来的参数不为空的话 遍历循环 判断使参数兼
容
for (int i = 0; i < params.length; i++) {//遍历参数数组
Object obj=params[i];//参数是 Object 类型的所以 Object 先接收 然后
判断
if(obj instanceof String){
ps.setString((i+1), (String)obj);//如果该参数是 String 类型的 就强
转设置 数组的的该位置元素是 String 类型
} else if(obj instanceof Integer){
ps.setInt((i+1), (Integer)obj);
}else if(obj==null){//这样判断一下因为有图片传入 判断不了类型
obj="";//赋值为空
ps.setString((i+1), (String)obj);//默认设置为 String 类型
}
}
}//执行 sql
int count=ps.executeUpdate();
return count;
} catch (SQLExcepon e) {
e.printStackTrace();
return 0;
}
}
//获取结果集的方法
public ResultSet excuteSql(String sql,Object[]params){
try {
rs=ps.executeQuery(sql);
for (int i = 0; i < params.length; i++) {
if(params[i] instanceof String){
ps.setString((i+1), (String)params[i]);
}else if(params[i] instanceof Integer){
ps.setInt((i+1), (Integer)params[i]);
}
}
} catch (SQLExcepon e) {
e.printStackTrace();
}
return rs;
}
public boolean closeResource(){
if(rs!=null){
try {
rs.close();
} catch (SQLExcepon e) {
e.printStackTrace();
return false;
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLExcepon e) {
e.printStackTrace();
return false;
}
}
if(conn!=null){
try {
conn.close();
conn=null;
} catch (SQLExcepon e) {
e.printStackTrace();
return false;
}
}
return true;
}
//方法重载 如果需要关闭几个资源就选择哪个方法
public void closeResource(Connecon conn){
if(conn==null){
try {
conn.close();
} catch (SQLExcepon e) {
e.printStackTrace();
}
}
}
}
Dao 层接口 --BookDao.java
package combook.dao;
import java.ul.List;
import combook.dto.Book;
import common.dto.PageDto;
public interface BookDao {
public List<Book> getBooksList(PageDto pagedto)throws Excepon;// 获得图书集合的方
法--所有信息
//增加一本图书信息
public int insertBooks(Book book)throws Excepon;
//根据图书编号删除新闻
public int delete(int bid)throws Excepon;
//修改信息 --传入的是图书对象
public int update(Book book)throws Excepon;
//根据图书编号查找该图书
//根据图书编号查找该图书
public Book query(int bid) throws Excepon;
public List<Book> query(String bookname) throws Excepon;
//获得总记录的方法
public int getAllRowCount() throws Excepon;
}
BookImpl.java 实现类 实现了接口 继承了 BaseDao.java
package combook.dao.impl;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.ul.ArrayList;
import java.ul.List;
import combook.dao.BaseDao;
import combook.dao.BookDao;
import combook.dto.Book;
import common.dto.PageDto;
public class BookImpl extends BaseDao implements BookDao{
//1、查询所有信息 返回一个 带有泛型的集合
public List<Book> getNewsList() throws Excepon {
//定义一个集合 集合是对应的要返回出去的 泛型集合
List<Book> bookList=new ArrayList<Book>();
super.getConnecon();//获得连接 通过父类的方法
conn.prepareStatement("select * from news");
rs=ps.executeQuery();//返回结果集
while(rs.next()){//循环结果集中的数据判断结果集中是否还有下一个
内容
Book book=new Book();//创建一个实例对象
//把结果集中的图书信息封装到图书对象中去
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);
剩余42页未读,继续阅读
资源评论
xiaowu002
- 粉丝: 0
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功