南昌大学javaweb大作业报告书(2)

2019-03-09 17:38

南昌大学软件学院 java web大作业 实验报告

Model2具有组件化的优点从而更易于实现对大规模系统的开发和管理,但是开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握。同时新东西的引入会带来新的问题(这让我想起来关于\自动计算\的一篇文章,中间提到为了降低系统的复杂度,却导致更高的复杂度)。必须基于MVC组件的方式重新思考和设计应用结构。原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程。 所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。 MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果。现在有很多可供使用的MVC框架,由于Struts有完整的文档并且相对来讲比较简单,所以用它开发MVC系统还是比较方便地。

3.2 关键程序流程

本实验的总体流程如下:

本系统应用3层架构模型,现分别对其进行阐述:

第一层架构为数据库层,也是程序的最底层(主要由DataBase.java实现),它的功能实现sql2012数据库的连接,函数里封装了几个操作。 public boolean query(String s) (用于查询数据表操作);

public ResultSet getlist(String s) (用于获取数据的可以滚动结果集) ; public int update(String s)(用于简单的数据更新操作)

public boolean executebatch(String a[])(批处理,用于处理多条sql);

第二层为JavaBean层和DAO层,主要实现对数据表的信息及对其进行操作的信息进行封装(主要由文件Books.java、Fine.java、borrowbook.java、Users.java、BookService.java 、borrowbookSevice.java、FineService.java和 UserService.java来实现的)。在相应的JavaBean层封装了所有数据表的信息,在上述的实体类中(Books.java、Fine.java、borrowbook.java、Users.java)仅包含对属性的set和get方法,在相应的DAO层主要包含对数据表的相关操作,如获得该数据表的全部信息或部分信息,增加、删除、修改、查询相应的数据表;

第三层为业务逻辑层,主要由Struts和其的action来实现,实现页面的控制和跳转到相应的jsp页面,其中action主要包括BooksAction.java、LoginAction.java、ResetfineAction.java、UserAction.java。

6 / 27

南昌大学软件学院 java web大作业 实验报告

相应的程序架构如图所示:

3.3 关键代码分析

? 数据库的连接和相关一些操作函数 (在文件DataBase.java中实现的):

package com.wk.util;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;

public class DataBase {

7 / 27

private Connection conn = null; private Statement stmt; ResultSet rs = null; //数据库的url

南昌大学软件学院 java web大作业 实验报告

8 / 27

private String url = \//数据库的用户名密码 String user = \String pass = \

//用于验证查询操作

public boolean query(String s) throws SQLException{

try{

//加载驱动

Class.forName(\

}catch(ClassNotFoundException e){ } try{

//创建链接

conn = DriverManager.getConnection(url, user, pass); stmt = conn.createStatement(); rs = stmt.executeQuery(s);

System.out.println(\加载驱动器类时异常\

}catch(SQLException e){ }

return(rs.next());

System.out.println(\连接数据库的过程中出现SQL异常
\

}

//用于结果集可滚动的操作

public ResultSet getlist(String s) throws SQLException{

try{

南昌大学软件学院 java web大作业 实验报告


\

9 / 27

//加载驱动

Class.forName(\

}catch(ClassNotFoundException e){ System.out.println(\加载驱动器类时异常\

} try{ //建立连接

conn = DriverManager.getConnection(url, user, pass); //得到statement对象 stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

//得到一个可滚动但不可以更新的结果集rs

rs = stmt.executeQuery(s);

}catch(SQLException e){

System.out.println(\更新操作连接数据库的过程中出现SQL异常

} return rs;

}

//用于对数据库的更新

public int update(String s) throws SQLException{ int msg=0; try{ //加载驱动

Class.forName(\

}catch(ClassNotFoundException e){

System.out.println(\加载驱动器类时异常\

南昌大学软件学院 java web大作业 实验报告

}

//批处理,用于处理多条sql

public boolean executebatch(String a[]){

try {

//创建链接

conn = DriverManager.getConnection(url, user, pass); conn.setAutoCommit(false);//关闭自动提交,进行事物处理 stmt = conn.createStatement(); for(int i=0;i

int [] number = stmt.executeBatch();//开始批处理,返回被执行的sql

stmt.addBatch(a[i]);

} try{

//创建链接

conn = DriverManager.getConnection(url, user, pass); stmt = conn.createStatement();

msg = stmt.executeUpdate(s); }catch(SQLException e){ }

return(msg);

System.out.println(\连接数据库的过程中出现SQL异常
\

语句的序号

10 / 27

conn.commit();

System.out.println(\共有\条sql语句被执行\stmt.clearBatch();//清空batch conn.close(); return true;


南昌大学javaweb大作业报告书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年标准化班组建设总结及2019年工作安排

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: