论文研究-基于J2EE的精简持久框架的研究与设计 .pdf

所需积分/C币:15 2019-08-15 13:43:59 345KB .PDF
收藏 收藏
举报

基于J2EE的精简持久框架的研究与设计,张美德,孟哲,本文从基于J2EE的Web应用程序开发三层架构扩展为五层架构中的持久框架入手,论述了当前持久框架的利弊,运用java泛型化编程技术和在j
国科技论又在线 http:/www.paper.edu.cn 操作; BaseDAOoperator类利用java反射机制根据传入的ⅤO对象的类产生相应的SQL语 句; BaseDAOlmpl类实现 IBaseDAo接口中所有方法,供业务逻辑层调用;这是总体类结构 下面说明实现的关键点 22.运用java反射机制产生相关SQL语句,减少SQL编写与调试 java反射( Reflection)机制是java被视为(准)动态语言的关键,它允许程序在运行 时透过 Reflection APis取得任一个已知名称的类的内部信息包括 modifiers(诸如 public, static 等等)、 superclass(如 Object)等,实现的 interfaces(如 Serializable),也包拈 fields和 methods 所有信息,并叫以在运行时改变 Tields内容和调用 methodse java这种看透 class的能力(the ability of the program to examine itself)被成为 Introspection(内省)。 Java中的“clas”类是Java中一个十分特殊的类。它和其它类一样继承自“ Object' 类,其对象用以表达Java程序运行时的类和接口。当一个类被加载时,JM便自动产生 个类对象。“Cas”是Java反射机制的起源。针对任何想探查的类,只有先为它产生一个 Class'”对象,接下来才能由这个“ Class'”对象调用为数十多个的反射APIs因此动态产牛 SQL语句可以这样做:首先将数据厍中的表育接映射为相应的POJO( Plain old java Objects),表中的字段与POJo的数据成员一一对应(数据类型,成员名要与表中字段类型 及名相同),并且表中从左到右字段顺序与POJO的数据成员顺序一致,即数据库中每张表 对应java中的一个值对象(VO,再用反射札制对值对象反射来产生SQL语句;例如 BaseDAOoperator类中产生向表中添加记录产生SQL语句实现如下 ∥形成添加记录SQ语句,这里要求表名与类名相同,表中列名与类中数据成员名要完全相同 public String addobjsql(Object obi) i Class cls=obj get Class; Fieldl fields=cls. get Fields String classnae= null Classname= cls. getSimpleNameO;这里返回仅类名 String addsql-=null addsql=" insert into"+ Classname+"";∥列名 String Buffer colmstr-new String Buffer( String Buffer valuecolmstr-new String Buffer (this column Count==0)i this column Count= fields. length if(! prilsAutolnc(obj){个是自增主键的情况 colmstr. append((); valuecolmstr. append("values (") for (int j=0; j< column Count-1; j++)i Field f=fields[]; colmstr. append(f getName(+,); valuecolmstr. append("?, " Field f=fields[column Count-1]; colmstr. append(f. getName0--")"); valuecolmstr. append(?)") addsql=addsql+ colmstr to String+valuecolmstr toString 3 国科技论又在线 http:/www.paper.edu.cn }else{/主键是自增的 colmstr. append((); valuecolmstr. append("values(") for(int j=1; j< column Count-1; j++)& Field f=fields[]; colmstr. append(f getName(+","); valuecolmstr. append("?, " Field f=fields[column Count-1; colmstr. append(f. getName0-)") valuecolmstr. append(?)") addsql--addsql+colmstr toString(+valuecolmstr toString return addsql: 在 IBaseDAOImpl类中实现对象的持久化实现代码如卜 ∥添加 public boolean add(object obj3 PreparedStatement ps=null List columns= new Arraylist olumns=baseDAOoperate class Property NameList(obj. getClasso) try{∥取得连接 conn-CDataSource. getconnectiono ∥得到添加记录的SQL语句 ps-conn. prepare Statement(baseDAOoperate addobjsql(obj)); 将对像值赋给表中的记录 if (!baseDAOoperate prilsautolnc(obj)) for (int i=0; 1< baseDAOoperate getcolumn Counto; 1++)i ps. setobject(i+ 1, BeanUtils. getSimpleProperty(obj ((String) columns. get(D)) for(int i=1; i< baseDAOoperate getcolumn Counto: 1++)1 ps. setobject(i, Bean Utils. getSimpleproperty(obj (( String) columns. get())) ∥执行SQL语句 psexecute(; return true s catch(E e printStackTrace(; return false 3 finally CData Sourcc. closePstmt(ps) CData Source. close Con(conn) 4 国科技论又在线 http:/www.paper.edu.cn 其它如除,查询,更新实现过程如此类似。具体的实现见 I BaseDAOlmpl java源文件。 这个精简的持久框架也就实现了,使用起来很简单,新建Web工程后,再建一个与工程 同名的ⅹML文件,在这个XML文件中指出JDBC的驱动程序、数据库的URL、用户 名和口令,实用时可根据实际改写,放到 tomcat wcb服务器的 conf catalinalocalhost下,同 时在业务层声明一个 IBascDAO对象,就可以不用写SQL语句,也不用配置象 Hibernate中 的表与jaa对象的映射文件,轻松操作迕接的数据厍中表中记录了。这样的框架即便数据 源换∫,只要改与一下的数据源配置文件和 DAtasωurce类的取待连接的方法,若SQL语 句不同,只需改一下 BaseDAOVOoperator类的产生SQL的方法实现即可,其它类不用改, 业务逻辑层的调用乜不用改,具有极奷移植性,简使性和通用性。应用这ˆ轾量级框架,使 开发人员减轻编写SQL语句及调试的繁重L作,而把精力放在业务逻辑处理上,可以大大 提高开发效率 3.基于此精简持久框架的应用 此DAO框架在京珠高速公路养护系统中得到应用,如此系统数据库中的工程进度表, 工程进度明细表,先依表名及表中字段名来写两个POJO类: GCJDB和 GCJDBMX,然后 在业务处理类 GCJDService和中 GCJDMX Serivice中直接声明一个 IBASEDAO接口类,利 用接∏中的方法就完成了本系统中两个的表的操作,实践中证明了此精简持久框架使用较简 洁,易上手,丌发晑效,在此系统中运行稳定,安全。 4.总结 本文从基于J2EE的Web应用程序开发三层架构扩展为五层架构中的持久框架入手,论 述了当前持久框架的利弊,提出设计一个轻量级的精简持久框架的必要性,进而设计了持久 框架的类结构关系图,冉讲述了实现的关键过程,并说明」其优点:与 Hibernate相比,是 不必为每张表生成一个映射文件及对应的POJO及相应接口类及其实现,对库中所有的表只 用产生对应的POJO并共用个通用的接口类及实现,因此用起来较谷易上手,在实际项目 得到应用,已取得良好的效果。此框架具有良好移植性,通用性,可以为小中型web应用 开发提高开发效率。但对于一些主键生成策略,并发性策略,事务管理策略竽方面冇待深 入研究,对框架进行扩展优化,以便适应于更复杂的项目开发! 参考文献 [] Craig A Berry、 John Carnell, Matjaz B. Juric(美)等著,邱仲潘等译实用J2EE设计模式编程指南电子 工业出版社 [2]王秀义基于JDBC的数据岸连接池及实现计算机系统应用(J20054 [3]夏昕,曹晓钢,唐勇编著深入浅出 Hibernate.电子工业出版社,205-6-1 [4]阎宏Java与模式北京:电子业出版社,202.251-254 [5]杨芙清,梅宏,李克勤、软件复用与软件构件技术.电子学报,2006,(2):37-41 国科技论又在线 http:/www.paper.edu.cn Research and design simplified persistence framework based on J2EE Zhang meide, Meng Zhe, Yang Chunjin Information Engineering College, Wuhan University of Technology, Wuhan (430063 Abstract This paper procceded with the persistence framework of five structures of wc application development based on 2FF which is expanded from three structures, and discussed the advantages and disadvantages of the current persistence framework. Then it rescarched and designeda gencral-lightwcight Simplified persistence framework making use of java gencral programming technology and java reflection method Keywords: interface; java reflection; persistence framework -6-

...展开详情
试读 6P 论文研究-基于J2EE的精简持久框架的研究与设计 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 至尊王者

    成功上传501个资源即可获取
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
论文研究-基于J2EE的精简持久框架的研究与设计 .pdf 15积分/C币 立即下载
1/6
论文研究-基于J2EE的精简持久框架的研究与设计 .pdf第1页
论文研究-基于J2EE的精简持久框架的研究与设计 .pdf第2页

试读结束, 可继续阅读

15积分/C币 立即下载 >