好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

(项目管理)图书管理系统增删查改基础项目BD.doc

39页
  • 卖家[上传人]:管****问
  • 文档编号:119768455
  • 上传时间:2020-01-25
  • 文档格式:DOC
  • 文档大小:64.33KB
  • / 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 getBooksList(PageDto pagedto)throws Exception;//获得图书集合的方法--所有信息 //增加一本图书信息 public int insertBooks(Book book)throws Exception; //根据图书编号删除新闻 public int delete(int bid)throws Exception; //修改信息 --传入的是图书对象 public int update(Book book)throws Exception; //根据图书编号查找该图书 //根据图书编号查找该图书 public Book query(int bid) throws Exception; public List query(String bookname) throws Exception; //获得总记录的方法 public int getAllRowCount() throws Exception; }BookImpl.java 实现类 实现了接口 继承了BaseDao.javapackage combook.dao.impl;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.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 getNewsList() throws Exception { //定义一个集合 集合是对应的要返回出去的 泛型集合 List bookList=new ArrayList(); super.getConnection();//获得连接 通过父类的方法 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")); //将图书对象添加到集合中去 因为集合是带有图书泛型所以不需要强转。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.