图书管理系统增删查改jspservlet基础项目BaseDao
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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