在线583人
首页
主题表
培训咨询
标签
精华
查搜
注册
登陆
用户
自动登陆
密码
新用户注册
忘记密码?
首页
»
论坛
»
开源项目大家谈
上一主题
[code] select mis_item.style_id style_id , sum(mis_item_swhse.qty) qty, sum(mis_item_..
返回本主题
返回主题列表
下一主题
看介绍挺吸引人的,向听听大家的感受。
Go
总共有
4
回复 /
1
页
前往下页:
gltbeyond
悄悄话
发表文章: 35
注册时间: 2007年04月05日 22:59
db4o使用小结
2008年06月04日 19:26
标签列表
db4o
(10)
实现一个小项目-- 拼餐计费系统
经历了近3周的反复,由于一开始,对象间更新关联关于复杂,导致set时对象重复存放。究其原因是,对象的关系设计混乱,set时犹如一大串珠子,没有抓住主线。
总结一下:
1. 时刻注意内存中的对象和数据库中的对象是否保持一致。
2. 对象间引用不要过多,避免环状引用。这点在初次设计class时,时常犯的错误,一直想这样关联起来才方便。其实对象间关系越简单越好。
3. 注意对象的List集合属性,在存储是,如果没有自动存入,不妨试试专门对此属性进行set,毕竟List也是个对象?? 我目前是这样解决的。
欢迎提出意见。
项目的源代码已经贴出,供交流学习:
http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=34147&message=23115033#23115033
gltbeyond
悄悄话
发表文章: 35
注册时间: 2007年04月05日 22:59
回复:db4o使用小结
2008年06月04日 21:00
补充:
例如: Diner--Account--Purchase
--Deposit
1. 分析这四个对象,Diner是比较稳定不变的,适合做一串珠子的头。
2. Account中有List purchaseList; List depositList 分别指向Purchase,Deposit. 当给对应diner的account增加purchase后,这个过程应该更新account的对象,进行结算余额等。此时的存储应该这样:set(account); set(purchaseList); 就可以达到目的了。
如果只是set(diner); 没有任何效果,因为diner在内存没有变化,不要指望自动update account.
另外由于List的特点,必须set(purchaseList).
3. 使用db4o , 终于发现内存中的对象原来是这样的。。 进一步学习使用中。
4. db4o适合小项目 。
banq
悄悄话
发表文章: 9482
注册时间: 2002年08月03日 17:08
回复:db4o使用小结
2008年06月06日 10:10
多谢共享。
使用对象数据库,功底就在对象掌握能力上了。
>时刻注意内存中的对象和数据库中的对象是否保持一致。
这个问题很重要,很琐碎,但是要时刻留意,不过框架本身应该能够处理,Hibernate JPA等都封装起来处理得不错,db4o也不应该有差错出现,但是从我个人Jdon框架开发和应用经验来看:无论框架做得如何好,只有自己直接参与内存对象和数据库对象一致,性能才最高,Jdon框架就是走的这条路。
>对象间引用不要过多,避免环状引用。
这才是最重要的,这个现象必须依靠对象的源头
OO
分析如Evans
DDD
来解决,而不是在对象设计层面。好的建模分析根本不会导致环状引用,因为现实生活中不存在猫追尾巴的现象。
freebox
悄悄话
发表文章: 279
注册时间: 2008年03月01日 01:08
re:db4o使用小结
2008年06月06日 19:01
据本人养猫经验,我养的猫是不追尾巴的,不知其它猫如何。
批量时效果如何?是否需要先载入再更新持久?毕竟有的东西不能都放进
缓存
。
gltbeyond
悄悄话
发表文章: 35
注册时间: 2007年04月05日 22:59
re:db4o使用小结
2008年06月16日 22:14
再次总结下。
1. 这几天折腾db4o更新对象,因为对象设计的较多,在一个事务中ObjectContainer使用了多个,导致第一个ObjectContainer查询出来的对象,随后更改后,在另外一个ObjectContainer。set()时候,发现对象重复存放了! 这其实就是因为ObjectContainer是维持事务的原因。所以同一个请求,同一个事务,务必在一个ObjectContainer下完成。
2. 面向对象的数据库,需要
DDD
,MDD先行,对对象的理解,对象间关联的管理尤其重要。
这个主题有
4
回复 /
1
页
Go
上一主题
返回本主题
返回主题列表
返回页首
下一主题
热点TAG:
AOP
cache
缓存
DDD
EJB
集群
设计模式
Hibernate
IOC
JiveJdon
OO
RBAC
Seam
Spring
Struts
正在读取,请等待...
Wowzio
grab this
·
technology
blog
查询本论坛内
近一天
近三天
近一周
近一月
近三月
近半年
近一年
所有
回复超过
的热门帖子
标题
内容
发贴前查询
标签列表
勿重复发表问题
解惑之道在
J道
,打造中国最具影响力的的企业软件社区
OpenSource
JIVEJDON
v3.0
Powered by
JdonFramework
Code © 2002-08
jdon.com
anti spam