隨筆:25 文章:1 評(píng)論:66 引用:0
steeven
BlogJava
首頁
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
編程使用SDO[EMF兄弟篇]
SDO,簡單理解就是EMF的脫機(jī)版。類似于resultSet和DataSet。可用于smartclient等脫機(jī)數(shù)據(jù)加工場合。
主要特點(diǎn):(個(gè)人理解)
可驗(yàn)證
強(qiáng)類型
可取出完整數(shù)據(jù)和差異。
生成SDO代碼和EMF大同小異,主要是在my.genmodel的第一個(gè)節(jié)點(diǎn)的右鍵菜單中選擇:Set SDO defaults.
體驗(yàn):
1. 生成Editor后,執(zhí)行生成的Editor Plugin
2. 新建Example EMF Model Creation Wizards->Data Graph Model
3. 在Changes節(jié)點(diǎn)上Start Loggin, 然后編輯數(shù)據(jù)即可看到自動(dòng)生成的差異。
網(wǎng)上手工操作SDO的示例代碼比較少,這里簡單demo如下:
import
?java.util.Iterator;
import
?org.eclipse.emf.ecore.EObject;
import
?org.eclipse.emf.ecore.sdo.EDataGraph;
import
?org.eclipse.emf.ecore.sdo.SDOFactory;
import
?org.steeven.family.FamilyFactory;
import
?org.steeven.family.個(gè)人;
import
?org.steeven.family.家庭;
import
?commonj.sdo.ChangeSummary;
import
?commonj.sdo.DataGraph;
import
?commonj.sdo.DataObject;
public
?
class
?Server?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????
//
?client?side
????????EDataGraph?graph?
=
?loadGraph();
????????graph.getChangeSummary().beginLogging(); // important!
????????家庭?family?
=
?(家庭)?graph.getRootObject();
????????family.setTitle(
"
my?family
"
);
????????個(gè)人?baby?
=
?FamilyFactory.INSTANCE.create個(gè)人();
????????baby.set姓名(
"
sophie
"
);
????????family.get兔崽子().add(baby);
????????graph.getChangeSummary().endLogging();
????????saveGraph(graph);
????????update(graph);
????}
????
//
server?side
????
public
?
static
?EDataGraph?loadGraph()?
{
????????家庭?family?
=
?FamilyFactory.INSTANCE.create家庭();?
//
?or?load?from
????????
//
?database
????????EDataGraph?graph?
=
?SDOFactory.eINSTANCE.createEDataGraph();
????????graph.setERootObject((EObject)?family);
????????
return
?graph;
????}
????
//
server?side?full?save
????
public
?
static
?
void
?saveGraph(EDataGraph?graph)?
{
????????System.out.println(graph.getRootObject());
????}
????
//
server?side?update?changed?objects
????
public
?
static
?
void
?update(DataGraph?dataGraph)?
{
????????ChangeSummary?changeSummary?
=
?dataGraph.getChangeSummary();
????????
for
?(Iterator?it?
=
?changeSummary.getChangedDataObjects().iterator();?it
????????????????.hasNext();)?
{
????????????DataObject?changedObject?
=
?(DataObject)?it.next();
????????????System.out.println(
"
Update?for?
"
?
+
?changedObject);
????????????
for
?(Iterator?settingIt?
=
?changeSummary.getOldValues(changedObject)
????????????????????.iterator();?settingIt.hasNext();)?
{
????????????????ChangeSummary.Setting?changeSetting?
=
?(ChangeSummary.Setting)?settingIt
????????????????????????.next();
????????????????System.out.println(
"
?(changed?
"
????????????????????????
+
?changeSetting.getProperty().getName()?
+
?
"
?from?\
""
????????????????????????
+
?changeSetting.getValue()?
+
?
"
\
"
?to?\
""
????????????????????????
+
?changedObject.get(changeSetting.getProperty())
????????????????????????
+
?
"
\
"
)
"
);
????????????}
????????}
????}
}
輸出:
org.steeven.family.impl.家庭Impl@9664a1?(title:?my?family)
Update?for?org.steeven.family.impl.個(gè)人Impl@1729854?(姓名:?sophie,?性別:?男)
Update?for?org.steeven.family.impl.家庭Impl@9664a1?(title:?my?family)
?(changed?title?from?"null"?to?"my?family")
?(changed?兔崽子?from?"[]"?to?"[org.steeven.family.impl.個(gè)人Impl@1729854?(姓名:?sophie,?性別:?男)]")
SDO生成的代碼似乎更加純凈一點(diǎn),沒有很多的eXxxx()方法(有需要的也可以取到)。
據(jù)說log的開銷比較大,不建議對(duì)大量數(shù)據(jù)使用。
發(fā)表于 2006-05-15 19:00
steeven
閱讀(1819)
評(píng)論(5)
編輯
收藏
所屬分類:
胡思亂想
、
學(xué)習(xí)筆記
評(píng)論
#
re: 編程使用SDO[EMF兄弟篇]
看不懂
李健愉
評(píng)論于 2007-02-28 21:35
回復(fù)
更多評(píng)論
#
re: 編程使用SDO[EMF兄弟篇]
你好,最近正在研究SDO,現(xiàn)在已經(jīng)實(shí)現(xiàn)先根據(jù)XSD文件生成了SDO API CODE。
不知道該怎樣往數(shù)據(jù)庫里邊增刪改查。。。如果有DEMO。
麻煩請(qǐng)發(fā)送到1984prince@163.com
小弟先謝了。
1984prince
評(píng)論于 2008-06-24 10:46
回復(fù)
更多評(píng)論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
litao
評(píng)論于 2008-07-03 16:00
回復(fù)
更多評(píng)論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
litao
評(píng)論于 2008-07-03 16:00
回復(fù)
更多評(píng)論
#
re: 編程使用SDO[EMF兄弟篇]
最近也在看這個(gè),有沒有好點(diǎn)的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
zebrahgp
評(píng)論于 2008-10-16 19:52
回復(fù)
更多評(píng)論
新用戶注冊
刷新評(píng)論列表
只有注冊用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
db4o,沒有主鍵?
YY一下未來的用戶界面
gwt和echo2的對(duì)比
轉(zhuǎn)貼:Comparing the Google Web Toolkit to Echo2
編程使用SDO[EMF兄弟篇]
EMF編程使用
Java版2006新春祝福
奢談未來的java語言。。。
CALENDER
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(10)
給我留言
查看公開留言
查看私人留言
隨筆分類
學(xué)習(xí)筆記(11)
(rss)
程序點(diǎn)滴(16)
(rss)
胡思亂想(8)
(rss)
隨筆檔案
2009年5月 (1)
2006年12月 (1)
2006年7月 (2)
2006年6月 (7)
2006年5月 (8)
2006年4月 (2)
2006年3月 (1)
2006年1月 (2)
2005年12月 (1)
文章檔案
2006年8月 (1)
相冊
annotation_wizard
samples
我的鏈接
我在csdn上的窩
(rss)
很久沒打理了
我在MSN上的窩
(rss)
我在博客園的窩
(rss)
我在天涯上的窩
搜索
最新評(píng)論
1.?re: 編程使用SDO[EMF兄弟篇]
最近也在看這個(gè),有沒有好點(diǎn)的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
--zebrahgp
2.?re: SNMP親密接觸
請(qǐng)問,我在接收Trap時(shí),同時(shí)有多個(gè)設(shè)備發(fā)送,在同一時(shí)間接收到的會(huì)有丟失的情況,怎么解決呢?snmp4j自帶的ThreadPool類有沒有在這方面起到多線程作用?
--analyser
3.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
--litao
4.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
--litao
5.?re: 編程使用SDO[EMF兄弟篇]
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
亚洲av无码专区亚洲av不卡
|
tom影院亚洲国产一区二区
|
噜噜噜亚洲色成人网站
|
成人免费无毒在线观看网站
|
亚洲午夜福利在线视频
|
免费黄网在线观看
|
亚洲AV永久无码精品网站在线观看
|
免费人成激情视频
|
国产成人亚洲精品播放器下载
|
国产成人免费ā片在线观看
|
毛片亚洲AV无码精品国产午夜
|
免费人成网站7777视频
|
久久久久免费视频
|
亚洲AV成人无码久久精品老人
|
免费无码又爽又刺激高潮视频
|
亚洲老熟女@TubeumTV
|
国产h视频在线观看网站免费
|
亚洲综合精品伊人久久
|
国产免费av片在线无码免费看
|
日韩免费高清一级毛片
|
亚洲一区无码中文字幕
|
无码精品国产一区二区三区免费
|
午夜亚洲乱码伦小说区69堂
|
免费一级肉体全黄毛片
|
99久久精品毛片免费播放
|
亚洲人成网站影音先锋播放
|
无人影院手机版在线观看免费
|
日韩国产精品亚洲а∨天堂免
|
免费播放春色aⅴ视频
|
秋霞人成在线观看免费视频
|
四虎成人精品国产永久免费无码
|
国产美女亚洲精品久久久综合
|
蜜桃成人无码区免费视频网站
|
日韩亚洲产在线观看
|
国产亚洲精品成人AA片新蒲金
|
国产男女猛烈无遮挡免费视频网站
|
人碰人碰人成人免费视频
|
久久精品国产亚洲AV无码麻豆
|
亚洲精品成人片在线播放
|
黄色永久免费网站
|
一本岛v免费不卡一二三区
|