Java Web开发技术》课程任务书 阶段评价2
模块名称:
图书信息管理
序号:
阶段评价2:后台图书信息管理
日期:
一、实验目的、要求及准备
1.实验目的
熟悉MVC开发模式,掌握信息修改功能的数据操作类、控制类以及前台视图的实现。
2.实验要求
实现信息修改、查询、列表、删除功能。
3 实验准备
教师可以提供部分视图页面样式、代码。
二、实验内容
  难点:商品修改
从信息列表中选择图书,根据图书ID到图书记录后显示该图书详细信息,修改后提交,在后台数据库修改信息。
update_book.jsp
三、实验步骤
商品修改
1、 前台视图、表单设置
2、 控制类Servlet的实现
3、 在操作类中实现商品修改方法
四、 实验报告(自己工程的代码)
1、 写出操作类中实现根据ID查商品详细信息方法
public Book getBookById(int id) {
       
    sql = "select * from book_info where id=" + id;
            Book book = new Book();
            try {
            psmt = con.prepareStatement(sql);
            ResultSet rs = psmt.executeQuery();
            if (rs.next()) {
                book.Int("id"));
                book.String("author"));
                book.Int("bookCount"));
                book.String("name"));
                book.String("type"));
                book.Double("price"));
                book.String("publicDate"));
                book.String("press"));
                book.String("info"));
                book.String("image"));
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return book;
    }
2、 写出修改页面中的关键代码。
<%
//根据商品ID 查商品信息
   
            String path = ContextPath();
            String id = Parameter("id");
            if (id == null)
            response.sendRedirect("error.jsp");
            BookOpr bo = new BookOpr();
            Book b = bo.getBookById(Integer.parseInt(id));
%>
<form name="addProduct" id="f1" action="../BookServlet?type=update&id=<%=b.getId() %>"method="post">
<table border="0">
<tr> <td class="row" colspan="2" align="center">图书信息修改</td> </tr>
<tr> <td class="row">图书名称:</td>
    <td><input type="text" name="bName" id="bName" value=<%=b.getName() % ></td>
</tr>
3、 写出操作类中实现商品信息修改方法
public boolean update(Book book) {
        int flag = 0;
        sql = "update book_info set name=?,type=?,price=?,press=?,author=?,publicDate=?,bookCount=?,image=?,info=? where id=?";
        try {
            psmt = con.prepareStatement(sql);
            psmt.setString(1, Name());
            psmt.setString(2, Type());
            psmt.setDouble(3, Price());
            psmt.setString(4, Press());
            psmt.setString(5, Author());
            psmt.setString(6, PublicDate());
            psmt.setInt(7, BookCount());
            psmt.setString(8, Image());
            psmt.setString(9, Info());
            psmt.setInt(10, Id());
            flag = psmt.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return flag > 0 ? true : false;
    }
4、 提交的东西不能更改写出商品添加的Servlet
else if (("type")[0].equals("update")) {
String id = Parameter("id");
// 1.接收表单参数
            String name = Parameter("bName");
            String type = Parameter("bType");
            String price = Parameter("bPrice");
            String author = Parameter("bAuthor");
            String publicDate = Parameter("bDate");
            String press = Parameter("bPress");
            String count = Parameter("bCount");
            String image = Parameter("bImage");
            if (image == null || image.equals("")) {
                image = Parameter("image");
            } else
                image = "images/bookImg/" + image;
            String info = Parameter("bInfo");
             
          // 2.封装Book对象       
            Book book = new Book();
            book.setId(Integer.parseInt(id));
            book.setAuthor(author);
            book.setBookCount(Integer.parseInt(count));
            book.setImage(image);
            book.setInfo(info);
            book.setName(name);
            book.setPress(press);
            book.setPrice(Double.parseDouble(price));
            book.setPublicDate(publicDate);
            book.setType(type);
       
            // 3.调用BookOpr的修改方法
            flag = bo.update(book);
            // 4.根据结果显示页面
            if (flag) {
            nextPage = "BookServlet?type=list";
            } else {
            out.print("<h3>修改失败,请重试!</h3>");
            }
}
五、实验中遇到的问题及解决方法
不能执行查询
查询出现错误
原因: 数据库中表的问题,比如列名不存在,数据库未添加,未发布

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。