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

2016-02-19 20:27 10 1 收藏

下面,图老师小编带您去了解一下只支持单表映射的持久化框架─EasyDBO,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  使用EasyDBO的持久化策略:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  
  一对一

  
  一对一关系要分为两种情况,一是主表对从表的映射。如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等等来简化页面的编写,而且这样操作,查询数据库的次数会少很多,而如果使用第一中就比较麻烦了。但要注意的是不能过多的添加字段,毕竟这些是冗余的数据。

来源:http://www.tulaoshi.com/n/20160219/1623731.html

延伸阅读
标签: 瘦身 另类瘦身
我们都知道中药不仅仅能有效调理身体,同时还能有效瘦身。为大家推荐中药和减肥食谱结合的方法,把中药放到减肥食tulaoshi.com谱中,不仅仅会让减肥效果提升,同时还会有营养。这样能让你健康减肥还不丢失营养哦。看看营养师为大家推荐的这一周 中药减肥 食谱。 周一:枸杞消除周末水肿 营养专家指出,枸杞富含多种微量元...
    条件查找映射 MFC中大量使用了BEGIN_XXX_MAP这样的宏,以及映射进行查找优化,例如消息映射,OLE命令映射,以及接口等等。每个映射包含一个指向基类的映射的指针。这样,当一个类需要根据一定的条件查找一个对象时,它会查找本类对象,如果没有找到,那么会查找基类,直到根基类。这类查找包含Windows消息,命令,事件...
标签: Web开发
图像映射使我们可以将图像的一些区域指定为热点。下面我们来看看图像映射的xhtml和css代码: xhtml: div id="pic" img src="img.jpg" width="600" height="450" alt="img" / ul li class="avirl"a href="#" title="avirl"span class="outer"span class="inner"span class="note"Avirl/span/span/span/a/li li class="guitar"a href="#" title=...
标签: SQLServer
在数据库开发中,由于用户录入信息的随意性,可能产生表内字符串类型的数据两端存有空格,或大小写不一致等现象,给以后数据应用过程中造成不必要的麻烦。这里简单使用了一个存储过程来解决这些问题。 /* 整理系统数据*/ CREATE  PROCEDURE pro_ClearupData as --第一部分 整理字符串类型的数据  去除两端的空格   declare @ta...
所有的.Net编译器在产生模块(Modules)的目标代码时都会产生有关类型的元数据(metadata), 这种元数据被捆绑在模块目标代码上(多个模块组成assemblies, 一个assembly是.Net下安全控制的基本单位,也是类型对象识别的基本单位), 这种元数据可以通过.Net环境下的reflection对象访问. System.Reflection名字空间下包含了可以访问这种数据的多种类. ...

经验教程

987

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部