5、 实例
为了更好地说明用JSP/Servlet构建三层式管理信息系统的方法,作者将举例分析设计一个商品邮购管理信息系统。这个商品邮购管理信息系统利用Java语言进行服务器端应用程序的开发,使用IBM公司的Webshpere作为应用服务器,数据库管理系统选用SQL Server7.0,数据库接口程序使用JDBC2接口。整个系统使用基于Web的方式来实现邮购业务的客户管理、职员管理、订单管理、商品管理、出库管理、入库管理等业务处理、流程控制、权限控制、查询统计以及打印等功能。其中详细分析订单管理部分的查询功能。
5.1数据库设计
对于订单部分,需要定义订单信息表Db_order,表中的字段有订单编号(ddbh),客户编号(khbh),商品编号(spbh),商品单价(spdj),定购数量(dgsl),合计总价(hjzj),收到金额(sdje),收到日期(sdrq)。为了能够在应用中使用Db_order表,必须建立数据库连接。这个功能由sql_data.java来实现。其部分代码如下。
| public class sql_data { String url = "jdbc:odbc:PostOrder"; // use your hostname and port number here String login = "sa"; // use your login here String password ="zh12345"; // use your password here public Connection connection = null; public Statement st = null; public ResultSet rs = null; try { Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver"); conn =DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } } |
| public class OrderGl { …… //定义如下的方法完成对订单的查询操作 public final String currentMultiQuery( javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws com.goods.exception.GoodsException { //从JSP页面获得相应查询信息 com.goods.view.OrderView view = getView(request, response); String ddbh = view.getDdbh(); //订单编号 //生成SQL语句 String sqlQuery = "select ddbh,khbh,spbh,spdj,dgsl,hjzj,sdje,sdrq from db_order "; //执行查询操作 java.util.Vector vector = new java.util.Vector(); com.goods.sjk.sql_data per = new com.goods.sjk.sql_data(); try { java.sql.ResultSet rs = per.executeQuery(sqlQuery); while (rs.next()) { com.goods.dx.Db_order temp = new com.goods.dx.Db_order(); temp.setDdbh(rs.getString("ddbh")); temp.setKhbh(rs.getString("khbh")); temp.setSpbh(rs.getString("spbh")); temp.setSpdj(rs.getString("spdj")); temp.setDgsl(rs.getString("dgsl")); temp.setHjzj(rs.getString("hjzj")); temp.setSdje(rs.getString("sdje")); temp.setSdrq(rs.getString("sdrq")); vector.addElement(temp); } rs.close(); per.close(); } catch (Throwable e) { e.printStackTrace(); per.close(); cxyw.printErrorToWeb(request, response, e.toString()); return e.toString(); } //将相关信息回显给界面 view.setVct(vector); request.setAttribute("view", view); return "1"; } } |
| <jsp:useBean id="view" class="com.goods.view.OrderView" scope="request" /> <jsp:useBean id="temp" class="com.goods.dx.Db_order" scope="page" /> < jsp:useBean >动作用id和scope发现存在的各个对象,再通过<%=view.getDdbh() 和<%=temp.getDdbh()%>来获取相关数据。 |