网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.面向对象编程:Java collection更.
.Java网络服务器编程.
.学习深入Java1.5枚举类型的内部.
.程序员注意:Java开发最容易犯的.
.触摸Java中的包和文档.
.使用Properties从配置文件中读取.
.两个加速Eclipse流行的插件介绍.
.JDK1.2关于JDBC中文问题的解决方.
.Java 理论与实践: 哈希.
.基于Servlet的Google Earth.
.Flex开发步骤——配置过程总结.
.增强的Windows窗体为.Net程序丰富.
.一个JAVABean的小例子.
.J2SE 5.0的static import.
.野马的性格 Java SE 6.0新特性体.
.Java的中文编程配置心得.
.用Java连接MSSQLServer.
.给你的Java应用程序加上日志功能.
.Java嵌入式开发(2).
.用定制的GUI开发Java聊天软件.

只支持单表映射的持久化框架─EasyDBO

发表日期:2008-2-20


EasyDBO是一个超轻量级的目前只支持单表映射的持久化框架,超轻量意味着入手很简单,使用很方便,但注意它是单表映射,导致在处理一些映射关系的时候要做一些特别的处理。

使用EasyDBO的持久化策略:


一对一


一对一关系要分为两种情况,一是主表对从表的映射。如Name(firstName, lastName, midNmae) 表和User表,因为EasyDBO只支持单表的映射,如果表的粒度过细,会导致极细的领域对象的产生,如Name对象的产生,而又需要为这些细粒度的对象创建CRUD方法,而且EasyDBO没有象Hibernate那样的自动的关联持久化操作,而且如果不使用Easyjf-dbo.xml来配置的话(即直接使用类实现IObject接口的话),你甚至不能在User对象中出现Name对象的私有成员申明。所以在这种情况下,最好把Name表和User表融合。二是大表和大表的映射,在这种情况下就只有使用外键关联的策略。但同样要注意,EasyDBO现在还不是一个完善的持久化框架,我认为很重要的一点就是离开了easyjf-dbo.xml的配置来持久化对象,如果直接使用implements IObject(而这是我认为最方便简单的使用途径,想必用惯了Hibernate转而使用EasyDBO的人都用这种感觉吧)你不能完整的使用OO,即不能在BBSDoc中出现private BBSDir bbsdir;而只能使用private String bbsdir_id。


一对多


一对多(多对一)通过上面的分析,可只在这种情况下,最好还是使用外键的关联(多的一方主动关联一的一方)。那么在领域类为一的一方中,不能出现XXXSet之类(如果使用配置文件除外)。这样实现的就是单向关联。要使用双向关联的话,就只能为一的一方添加一个Util类,使用Query方法来得到多的一方的List了。


多对多


多对多的情况是比较复杂的了。一般的情况是通过建立一个中间表来管理两对象的关系。在EasyDBO中就分两个情况了。先举个例子:比如User和Role,这是一个典型的多对多的映射关系,在用户权限管理模型中这种实现方法很普通。那么对这个多对多该怎么处理?首先还是要建立一个User-Role表,这个是必须的,其次就出现了两个情况,一,直接使用User-Role表。这种情况就是说不对User-Role表做任何处理,在UserUtil中建立一个List getRoles()方法,在该方法中直接使用SQL语句从做一个两层的嵌套查询。这种方法还是不错,对于原来就使用JDBC的程序员很熟悉,但比较麻烦而且查找次数较多。另一个就是为User-Role表建立一个UserRole对象,这也是我推荐的做法。建立一个对象的意思不是说就是一个单纯的建立一个桥梁对象(我自己就这样叫那种为只起中间过度作用的表建立的对象),我就想能不能根据实际的情况利用好这个对象。比如在用户权限管理界面中我们会列出某个用户的所有权限或者列出属于一个权限组的所有用户只类的,那么我门就可以在User-Role表(即UserRole对象中)添加一些冗余字段,如userName, roleNmae等等来方便页面的合成操作,比如我门可以方便的使用# foreach ( $UserRole in $UserRoleList)… $!UserRole.userName等等来简化页面的编写,而且这样操作,查询数据库的次数会少很多,而如果使用第一中就比较麻烦了。但要注意的是不能过多的添加字段,毕竟这些是冗余的数据。

上一篇:提高J2EE层与数据库层交互操作能力的优势 人气:1269
下一篇:J2ME中用不到的Java基础知识 人气:1420
浏览全部EasyDBO的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐