
(项目管理)图书管理系统增删查改基础项目BD.doc
39页这是图书管理系统的课后作业 增删查改 BaseDao jsp提交到servletBaseDao.java 数据库操作通用类package combook.dao;import java.sql.*;import com.dao.util.ConfigManager;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.javapackage combook.dao;import java.util.List;import combook.dto.Book;import common.dto.PageDto;public interface BookDao { public List












