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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这是图书管理系统的课后作业增删查改B a s e D a o jsp提交到servlet

BaseDao.java 数据库操作通用类

package combook.dao;

import java.sql.*;

import common.*;

public class BaseDao {//数据库操作通用类

protected Connection conn;

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

private static String driver;

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

private static String url;

private static String userName;//数据库用户名

private static String password;//数据库密码

//静态的Connection 对象

static{

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

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

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

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

}

protected ResultSet rs;

protected Statement stmt;

protected PreparedStatement ps;

//获取链接的方法

public boolean getConnection(){

if(conn!=null){//判断连接对象是否为空

return false;

}

try {

Class.forName(driver);//加载驱动

//根据url,用户名和密码获取链接获取的是connection对象

conn=DriverManager.getConnection(url,userName,password);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException 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 (SQLException 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 (SQLException e) {

e.printStackTrace();

}

return rs;

}

public boolean closeResource(){

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

return false;

}

}

if(ps!=null){

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

return false;

}

}

if(conn!=null){

try {

conn.close();

conn=null;

} catch (SQLException e) {

e.printStackTrace();

return false;

}

}

return true;

}

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

public void closeResource(Connection conn){

if(conn==null){

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

Dao层接口 --BookDao.java

package combook.dao;

public interface BookDao {

public List getBooksList(PageDto pagedto)throws Exception;//获得图书集合的方法--所有信息

相关文档
最新文档