隨筆:25 文章:1 評論:66 引用:0
steeven
BlogJava
首頁
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
編程使用SDO[EMF兄弟篇]
SDO,簡單理解就是EMF的脫機版。類似于resultSet和DataSet。可用于smartclient等脫機數(shù)據(jù)加工場合。
主要特點:(個人理解)
可驗證
強類型
可取出完整數(shù)據(jù)和差異。
生成SDO代碼和EMF大同小異,主要是在my.genmodel的第一個節(jié)點的右鍵菜單中選擇:Set SDO defaults.
體驗:
1. 生成Editor后,執(zhí)行生成的Editor Plugin
2. 新建Example EMF Model Creation Wizards->Data Graph Model
3. 在Changes節(jié)點上Start Loggin, 然后編輯數(shù)據(jù)即可看到自動生成的差異。
網(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.個人;
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
"
);
????????個人?baby?
=
?FamilyFactory.INSTANCE.create個人();
????????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.個人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.個人Impl@1729854?(姓名:?sophie,?性別:?男)]")
SDO生成的代碼似乎更加純凈一點,沒有很多的eXxxx()方法(有需要的也可以取到)。
據(jù)說log的開銷比較大,不建議對大量數(shù)據(jù)使用。
發(fā)表于 2006-05-15 19:00
steeven
閱讀(1818)
評論(5)
編輯
收藏
所屬分類:
胡思亂想
、
學(xué)習(xí)筆記
評論
#
re: 編程使用SDO[EMF兄弟篇]
看不懂
李健愉
評論于 2007-02-28 21:35
回復(fù)
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
你好,最近正在研究SDO,現(xiàn)在已經(jīng)實現(xiàn)先根據(jù)XSD文件生成了SDO API CODE。
不知道該怎樣往數(shù)據(jù)庫里邊增刪改查。。。如果有DEMO。
麻煩請發(fā)送到1984prince@163.com
小弟先謝了。
1984prince
評論于 2008-06-24 10:46
回復(fù)
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
litao
評論于 2008-07-03 16:00
回復(fù)
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
litao
評論于 2008-07-03 16:00
回復(fù)
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
最近也在看這個,有沒有好點的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
zebrahgp
評論于 2008-10-16 19:52
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
db4o,沒有主鍵?
YY一下未來的用戶界面
gwt和echo2的對比
轉(zhuǎn)貼:Comparing the Google Web Toolkit to Echo2
編程使用SDO[EMF兄弟篇]
EMF編程使用
Java版2006新春祝福
奢談未來的java語言。。。
CALENDER
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
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
31
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(10)
給我留言
查看公開留言
查看私人留言
隨筆分類
學(xué)習(xí)筆記(11)
(rss)
程序點滴(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)
我在天涯上的窩
搜索
最新評論
1.?re: 編程使用SDO[EMF兄弟篇]
最近也在看這個,有沒有好點的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
--zebrahgp
2.?re: SNMP親密接觸
請問,我在接收Trap時,同時有多個設(shè)備發(fā)送,在同一時間接收到的會有丟失的情況,怎么解決呢?snmp4j自帶的ThreadPool類有沒有在這方面起到多線程作用?
--analyser
3.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
--litao
4.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
--litao
5.?re: 編程使用SDO[EMF兄弟篇]
評論內(nèi)容較長,點擊標(biāo)題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
国产精品成人免费观看
|
无遮挡a级毛片免费看
|
无码中文字幕av免费放dvd
|
毛茸茸bbw亚洲人
|
国产免费久久久久久无码
|
国产成人精品日本亚洲专区61
|
一级片在线免费看
|
亚洲人成伊人成综合网久久久
|
三级网站免费观看
|
亚洲专区在线视频
|
114一级毛片免费
|
亚洲欧美一区二区三区日产
|
在线免费观看国产视频
|
另类图片亚洲校园小说区
|
免费a级毛片18以上观看精品
|
免费一级毛suv好看的国产网站
|
久久99亚洲综合精品首页
|
两个人看的www免费视频
|
亚洲第一福利网站
|
日本妇人成熟免费中文字幕
|
亚洲精品乱码久久久久久V
|
全亚洲最新黄色特级网站
|
XXX2高清在线观看免费视频
|
亚洲自偷自拍另类12p
|
免费无码黄动漫在线观看
|
一个人免费观看www视频
|
亚洲AV无码一区二区二三区软件
|
亚洲综合自拍成人
|
日韩国产免费一区二区三区
|
国产精品亚洲а∨无码播放不卡
|
99re6在线精品免费观看
|
911精品国产亚洲日本美国韩国
|
国内精自视频品线六区免费
|
亚洲欧美不卡高清在线
|
久久精品国产精品亚洲
|
国产精品视频免费观看
|
一个人看的www免费高清
|
亚洲一区二区三区播放在线
|
亚洲人成色77777在线观看大
|
99精品视频免费在线观看
|
综合一区自拍亚洲综合图区
|