java课程设计模块设计及编程示例

上传人:第*** 文档编号:62119911 上传时间:2018-12-17 格式:PDF 页数:18 大小:166.94KB
返回 下载 相关 举报
java课程设计模块设计及编程示例_第1页
第1页 / 共18页
java课程设计模块设计及编程示例_第2页
第2页 / 共18页
java课程设计模块设计及编程示例_第3页
第3页 / 共18页
java课程设计模块设计及编程示例_第4页
第4页 / 共18页
java课程设计模块设计及编程示例_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《java课程设计模块设计及编程示例》由会员分享,可在线阅读,更多相关《java课程设计模块设计及编程示例(18页珍藏版)》请在金锄头文库上搜索。

1、“班级设置班级设置”模块设计与编程示例模块设计与编程示例 按照MVC设计模式【模型(model)视图(view)控制器(controller)】,每 个模块逻辑上按三层结构(数据访问层,业务层,Web层)依次从左到右进行设 计。下面是以“班级设置”模块为例介绍设计思路。 数据访问层业务层表示层(Web) Dbconnection(数据库连接) ClassinfoServiceImp (业务处理对象) ClassinfoServlet (视图显示对象) 数据接口:ClassinfoDao 数据访问对象: ClassinfoImp 数据访问层:用于与数据库的连接以及各种数据操作,包括增加、删除、查

2、询、 修改等。该部分主要包括数据库连接、数据实体接口、数据访问对象。其中 “数据访问对象”是对“数据实体接口”的具体实现。例如,数据库连接对象 (Dbconnection)主要定义了数据库的访问连接等方法;抽闲数据接口 (ClassinfoDao)抽象地定义了操作“班级信息”的各种接口方法(增删查修); 而数据访问对象(ClassinfoImp)实现了ClassinfoDao接口中的所有方法,达到 数据操作与访问的目的。 业务层:用于业务数据的处理,主要通过“数据访问对象”(ClassinfoImp)中 提供的各种数据操作,完成相应的“业务层”功能。例如, ClassinfoServiceIm

3、p(班级模块的业务处理对象)调用ClassinfoImp中的各种数 据处理方法,以实现业务数据的处理。 表示层:采用可视化的界面形式显示各种业务处理上的数据,它主要调用业务 层中的ClassinfoServiceImp来完成数据的显示。该层模块通常使用Servlet技 术来实现,以动态显示。例如:ClassinfoServlet(班级模块的视图显示对象) 调用 ClassinfoServiceImp中的各种操作服务或方法,实现“表示层”功能。 注意:该注意:该“学生成绩管理系统学生成绩管理系统”中的每个模块都需要定义上述中的每个模块都需要定义上述4 4种对象或文件种对象或文件 ( (除除Dbc

4、onnectionDbconnection外外) )。 下面将以“班级设置”模块为例,详细介绍具体设计过程。 第一步.因为每个模块都要连接数据库。所以编写一个Dbconnection.java公共 类(只需写一次)。 第二步.每一模块的功能都需要操作数据,可以将数据存取操作都存放在 javabean之中。例如,本例是Classinfo.java 第三步.首先编写抽象数据接口ClassinfoDao.java(代码如下所示),然后编写 该接口的实现对象-数据访问对象(Classinfoimp.java)。使用该接口的目的是 为了让业务层与数据访问层分离。 public interface Cla

5、ssinfoDao void add(Classinfo classinfo); void delete(String classID); void uptate(String classID, String gradeID, String className); Classinfo find(String classID); List getAll(); List fenyeList(int page); int findCount(); 第四步.编写业务层.业务层用于业务数据的处理并完成相应的“业务层”功能。 本例中的业务层是ClassinfoServiceImp.java。业务层编写完后

6、以提供web层调 用。 第五步.编写表示层(web层).表示层是采用可视化的界面形式显示各种业务处理 上的数据,它主要调用业务层中的ClassinfoServiceImp来完成数据操作功能, 如增加、删除、查询、修改等。本例Web层程序是ClassinfoServlet.java。 下面是核心代码解释: 因为在修改时要解决中文乱码问题,所以先设置request的编码格式。 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcept

7、ion request.setCharacterEncoding(“UTF-8“); String method= request.getParameter(“method“); if(method.equals(“add“) add(request,response); else if(method.equals(“delete“) delete(request,response); else if(method.equals(“listall“) listall(request,response); else if(method.equals(“update“) update(reques

8、t,response); else if(method.equals(“fenye“) fenyelistall(request, response); 在增删改查中稍有困难的是删除和修改在一块实现。主要代码如下。 functionfunction CheckAll(elementsA, elementsB) forfor (i = 0; i 班级编号 年级编号 班级名称 删除 修改 $c.classID $c.gradeID $c.className 修改 全选/反选 删除 $bar 注:一个jsp里可以有多个表单。本例中还有一个值得学习的地方是把数据分页。 用mysql和sqlserver

9、数据库实现的方式是不同的。本例还有两个filter类。 CheckLoginFilter.java是用来阻止没有登录的用户进入后台管理。后来发现一 个问题,就是在登录后,然后退出,再在浏览器里访问main.jsp还是可以进入 后台,然后创建一个Nocachefilter.java来阻止浏览器缓存。 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式, 服务器端用Request.Form获取提交的数据。 附录:1. 数据库连接对象(Dbconnection.java) package stu.utils; import java.sql.Connect

10、ion; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; public class Dbconnection protected static String dbClassName = “com.microsoft.sqlserver.jdbc.SQLServerDriver“; protectedprotected staticstatic StringString

11、dbUrldbUrl = = “jdbc:sqlserver:/127.0.0.1:1433;“jdbc:sqlserver:/127.0.0.1:1433;“ + + “DatabaseName=DB_Student“;“DatabaseName=DB_Student“; protectedprotected staticstatic StringString dbUserdbUser = = “sa“;“sa“; protectedprotected staticstatic StringString dbPwddbPwd = = “1234“;“1234“; publicConnecti

12、on connect = null; public Statement stmt=null; public ResultSet rs=null; Test public Connection getConnection() Connection conn = null; try if (conn = null) Class.forName(dbClassName).newInstance(); catch (Exception ee) /System.exit(0); try conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); if(co

13、nn=null) System.out.println(“数据库名称错误“); Statement st=conn.createStatement(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); System.out.println(“数据库连接错误“); return conn; public ResultSet executeQuery(String sql) try connect=getConnection(); stmt=connect.createStatement(R

14、esultSet.TYPE_SCROLL_SENSITIVE,ResultSet.C ONCUR_READ_ONLY); rs=stmt.executeQuery(sql); catch (SQLException e) / TODO Auto-generated catch block System.err.println(e.getMessage(); e.printStackTrace(); return rs; /执行添加 public int executeUpdate(String sql) int result=0; try connect=getConnection(); st

15、mt=connect.createStatement(); result=stmt.executeUpdate(sql); /System.out.print(“添加成功“); catch (SQLException e) / TODO Auto-generated catch block /e.printStackTrace(); result=0; try stmt.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return result; public void

16、 close() try if(rs!=null) rs.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); try if(stmt!=null) stmt.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); try if(connect!=null) connect.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 2. 数据实体J

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号