百度广告
EasyDBO是一个超轻量级的目前只支持单表映射的持久化框架,超轻量意味着入手很简单,使用很方便,但注意它是单表映射,导致在处理一些映射关系的时候要做一些特别的处理。
一对一
一对多
多对多
多对多的情况是比较复杂的了。一般的情况是通过建立一个中间表来管理两对象的关系。在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等等来简化页面的编写,而且这样操作,查询数据库的次数会少很多,而如果使用第一中就比较麻烦了。但要注意的是不能过多的添加字段,毕竟这些是冗余的数据。
点击加载更多评论>>