120 likes | 293 Views
实例讲解 — 框架使用. 根据公司已有项目保险系统讲解框架使用。. 北京平强软件有限公司. 一、 项目框架概述. 本框架采用 Maven 做为项目资源管理, ibatis3+proxool 做为数据库基础支持,以 filter (过滤器)拦截、转发请求,以 velocity 做为视图层技术。 Proxool 是一种 Java 数据库连接池技术。 Ibatis 是一半自动化的 ORM 框架。具体的 SQL 需要程序员编写,然后通过映 射配置文件,将 SQL 所需的参数,以及返回的结果字段映射到指定 POJO 。. 北京平强软件有限公司. 二、 代码路径.
E N D
实例讲解—框架使用 根据公司已有项目保险系统讲解框架使用。 北京平强软件有限公司
一、项目框架概述 • 本框架采用Maven做为项目资源管理,ibatis3+proxool做为数据库基础支持,以filter(过滤器)拦截、转发请求,以velocity做为视图层技术。 • Proxool是一种Java数据库连接池技术。 • Ibatis是一半自动化的ORM框架。具体的SQL 需要程序员编写,然后通过映 射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。 北京平强软件有限公司
二、代码路径 • 所有页面存放在Dove-Insure工程中src/main/resources/content目录下,再以模块名建包, • 同模块页面都放在此包下。 • java代码存放在Dove-Insure工程中Java Resources:java目录下,包名以org.rzzl开始,后接模块名,模块名后接功能名。如:org.rzzl.XXX.action;org.rzzl.XXX.service。 北京平强软件有限公司
二、代码路径 • java文件命名:action或service必须以名称+Action/Service,存放于其对应模块包、功能包下。如:XXXAction;XXXService • ibatis的xml文件:存放于/Dove-insure/src/main/resources/mappers包下。 北京平强软件有限公司
三.功能的实现-Action • Action:所有的action必须继承org.rzzl.core.base.AbstractAction类。AbstractAction中,已经封装了页面提交的请求request和response,requese和response为AbstractAction中的成员变量,可直接调用; 北京平强软件有限公司
三.功能实现-请求转发 • 请求转发规则:如一页面存放在src/main/resources/content/XXX包下,页面中有一form(表单)提交至YYY!ZZZ.action,则该requese(请求)会被转发至Java Resources:java目录下org.rzzl.XXX.action包中YYYAction类接收(YYYAction类必须继承org.rzzl.core.base.AbstractAction类),并直接调用其中的ZZZ方法处理该请求(该请求已经被AbstractAction类封装为AbstractAction的成员变量,子类可直接调用)。若未选择指定方法处理请求,如YYY.action,则默认执行YYYAction类中的execute方法,execute方法须覆盖父类(AbstractAction类)中的execute方法;若覆盖,则执行父类(AbstractAction类)中的execute方法,父类execute方法返回的视图模板是YYY.vm。 北京平强软件有限公司 北京平强软件有限公司
三.功能实现-数据库调用 • 数据库调用:框架中已经封装了BaseDao类(全路径为org.rzzl.core.base.BaseDao),此类为单例类,必须调用其静态方法newInstance()拿到其对象,从而通过对象,对数据库进行操作。此类中已经封装增、改、查方法,所有方法一般普遍有一或两种类型参数: • String型参数:一般为指定的xml文件中指定id的Sql语句,其规则为:xml命名空间名+“.”+Sql语句id,如:insure.selectInsure,则框架会自动寻找/Dove-Insure/src/main/resources/mappers包下名为Insure.xml中id为selectInsure的Sql语句执行。 • Object型参数:即在ibatis3下为Sql语句设置的参数。 北京平强软件有限公司
三.功能实现-数据库调用 • 方法列举: • 新增:insert(String iName,Object obj); • 修改:update(String iName,Object obj); • 删除:delete(String sName, Object obj); • 获取序列:getSequence(String seqName); • 查询:selectForList(String sName); • .selectForList(String sName,Object obj); • .selectForOne(String sName,Object obj);等。 北京平强软件有限公司
四.数据库事务管理 • 当添加、修改数据库时,必须添加事务,添加事务的方法:如一方法调用了BaseDao类,则该方法的方法名必须加前缀do。如:doYYY();doZZZ(); 北京平强软件有限公司
五.视图及页面跳转 • 本框架采用velocity做为视图层技术。 • 模板:模板为.vm格式文件,存放于src/main/resources/content/+模块名包下,其中写html代码+velocity代码。 • 模板调用及页面跳转:框架中已经封装VelocityUtil类(全路径:org.rzzl.core.base.VelocityUtil),调用对象的merge方法。merge方法中有两个参数:第一个参数为模板路径,如:XXX/YYY.vm,则框架会自动src/main/resources/content/XXX包下寻找名为YYY.vm的模板来使用。第二个参数为velocityContext,即上下文,即数据,velocityContext的使用方法基本同map,为键值对。merge方法把模板和数据融合,即把模板中velocity代码根据velocityContext中的键名替换为键所对应的数据,返回html格式的字符串,即页面,返回给客户端浏览器。 北京平强软件有限公司
六.规范 • 规范:页面跳转应写在Action的方法中,业务应写在Service层中,Action中的方法调用Service层。 北京平强软件有限公司
Thank You ! 北京平强软件有限公司