基于Web设计实习报告

  • 格式:doc
  • 大小:122.00 KB
  • 文档页数:14

基于Web设计实习报告课程设计题目:网上书店桂林理工大学信息科学与工程学院班级:计算机11-1班报告人姓名:陈啟森学号:承担角色:程序设计员同组组长:同组其他成员:实验指导教师:邓酩实验地点: 02513完成起止日期:[正文] 用户模块:后台管理:我主要负责上面两个模块中需要用到的数据库访问层(DAO),以及其具体的数据的增、删、改 的实现方法,为了做到这些操作我创建了对应的包及其类: 1、针对book 表的操作在com.bsw.book 包中放置Book.java 和BookDAO.java 文件。

2、针对BookCategory 表的操作在com.bsw.bookcategory 包中放置BookCategory.java 和BookCategoryDAO.java 文件。

3、针对shopcart 表的操作在com.bsw.shopcart 包中放置ShopCart.java 和ShopCartDAO.java 文件。

4、针对traderecord 表的操作在com.bsw.traderecord包中放置TradeRecord.java和TradeRecordDAO.java文件。

5、针对user表的操作在er包中放置User.java和UserDAO.java文件。

增、删、改具体实现方法以book表为例:插入功能实现:/*** 插入Book对象到数据库中* @param book 将要插入的Book对象* @return 是否插入成功*/public boolean insertBook(Book book){// 获得数据库的连接对象connection = DBManager.getConnection();// 生成SQL代码StringBuffer sqlState = new StringBuffer();sqlState.append("INSERT INTO book(name,url,author,bookman,");sqlState.append("status,price,categoryId,introduction,total,currentNum,addTi me)");sqlState.append(" VALUES(?,?,?,?,?,?,?,?,?,?,?)");// 设置数据库的字段值try {preState = connection.prepareStatement(sqlState.toString());preState.setString(1, book.getName());preState.setString(2, book.geturl());preState.setString(3, book.getAuthor());preState.setString(4, book.getBookman());preState.setInt(5, book.getStatus());preState.setDouble(6, book.getPrice());preState.setInt(7, book.getCategoryId());preState.setString(8, book.getIntroduction());preState.setInt(9, book.getTotal());preState.setInt(10, book.getCurrentNum());preState.setDate(11, book.getAddTime());//System.out.println(sqlState);// 设置事务的开始,并更新数据库,最后提交事务preState.execute("begin");preState.executeUpdate();preState.execute("commit");return true;} catch (SQLException e) {// 插入失败则回滚try {preState.execute("rollback");} catch (SQLException e1) {e1.printStackTrace();return false;}e.printStackTrace();} finally {DBManager.closeAll(connection, state, resultSet);}return false;}删除功能实现:/*** 删除给定ID的书** @param bookID 给定的书ID* @return 真或假*/public boolean deleteBook(int bookID){Connection conn=null;Statement stmt=null;ResultSet rs=null;try{conn=DBManager.getConnection();stmt=conn.createStatement();String sqlStr="delete from book where id="+bookID;stmt.execute("begin"); // 事务保证删除成功stmt.executeUpdate(sqlStr);stmt.execute("commit");//System.out.println("delete success!");return true;}catch(SQLException e){try{stmt.execute("rollback"); // 回滚}catch(SQLException e1){e1.printStackTrace();}e.printStackTrace();return false;}finally{DBManager.closeAll(conn,stmt,rs);}}修改功能实现:/*** 用给定的对象更新数据库与所给定对象ID号相同记录** @param book 给定书的对象* @return 真或假*/public boolean updateBook(Book book){Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;StringBuffer sqlStr=new StringBuffer();sqlStr.append("UPDATE book SET name=?,url=?,author=?");sqlStr.append(",bookman=?,status=?,price=?,categoryId=?,");sqlStr.append("addTime=?,currentNum=?,introduction=?");sqlStr.append("WHERE id=?");//System.out.println(sqlStr);try{conn=DBManager.getConnection();pstmt=conn.prepareStatement(sqlStr.toString());pstmt.setString(1, book.getName());pstmt.setString(2,book.getAuthor());pstmt.setString(3, book.getBookman());pstmt.setInt(4, book.getStatus());pstmt.setDouble(5, book.getPrice());pstmt.setInt(6, book.getCategoryId());pstmt.setDate(7, book.getAddTime());pstmt .setInt(8, book.getCurrentNum());pstmt.setString(9,book.getIntroduction());pstmt.setString(10, book.geturl());pstmt.setInt(11, book.getId());pstmt.execute("begin"); // 事务保证更新成功pstmt.executeUpdate();pstmt.execute("commit");//System.out.println("update success!!");return true;}catch(SQLException e){try{pstmt.execute("rollback");}catch(Exception e2){e2.printStackTrace();}e.printStackTrace();return false;}finally{DBManager.closeAll(conn, pstmt, rs);}}一、个人遇到的困难与获得的主要成果一开始建立DAO层以及对应实体类时,对于如何利用代码访问数据库并进行数据的增加删除以及修改完全不懂,大概就是实体类读取数据库对应表的数据这个稍微有些懂,而DAO 层如何进行对表的各种操作的具体实现代码可以说是一头雾水。

后来经过上网查询各种方法,大概了解到怎么去建立DAO层和实体类,因此我照着方法一步一步的做出来了。

首先第一步是创建数据库表。

第二步是要加入JDBC驱动类库。

因为我们这个项目是打算使用MySQL数据库,对于Web项目来说加入类库文件非常容易,只要把mysql-connector-java-3.1.11-bin.jar这个文件复制到WebRoot/WEB-INF/lib下,MyEclipse会自动把文件加入到项目的类路径中。

第三步需要创建一个实体类,以数据库中的book对象为例,这个类用来保存和传递来自数据库库的数据信息。

部分代码清单如下://Book.javapublic Book() {}public Book(String name, String url,String author, String bookman, int status, double price, int categoryId, String introduction,Date addTime,int total) { = name;this.url = url;this.author = author;this.bookman = bookman;this.status = status;this.price = price;this.categoryId = categoryId;this.introduction = introduction;this.addTime = addTime;this.total = total;this.currentNum = total;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getBookman() {return bookman;}public void setBookman(String bookman) {this.bookman = bookman;}最后是创建一个数据库访问对象。