隨筆:25 文章:1 評論:66 引用:0
steeven
BlogJava
首頁
發新隨筆
發新文章
聯系
聚合
管理
編程使用SDO[EMF兄弟篇]
SDO,簡單理解就是EMF的脫機版。類似于resultSet和DataSet。可用于smartclient等脫機數據加工場合。
主要特點:(個人理解)
可驗證
強類型
可取出完整數據和差異。
生成SDO代碼和EMF大同小異,主要是在my.genmodel的第一個節點的右鍵菜單中選擇:Set SDO defaults.
體驗:
1. 生成Editor后,執行生成的Editor Plugin
2. 新建Example EMF Model Creation Wizards->Data Graph Model
3. 在Changes節點上Start Loggin, 然后編輯數據即可看到自動生成的差異。
網上手工操作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()方法(有需要的也可以取到)。
據說log的開銷比較大,不建議對大量數據使用。
發表于 2006-05-15 19:00
steeven
閱讀(1820)
評論(5)
編輯
收藏
所屬分類:
胡思亂想
、
學習筆記
評論
#
re: 編程使用SDO[EMF兄弟篇]
看不懂
李健愉
評論于 2007-02-28 21:35
回復
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
你好,最近正在研究SDO,現在已經實現先根據XSD文件生成了SDO API CODE。
不知道該怎樣往數據庫里邊增刪改查。。。如果有DEMO。
麻煩請發送到1984prince@163.com
小弟先謝了。
1984prince
評論于 2008-06-24 10:46
回復
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
litao
評論于 2008-07-03 16:00
回復
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
litao
評論于 2008-07-03 16:00
回復
更多評論
#
re: 編程使用SDO[EMF兄弟篇]
最近也在看這個,有沒有好點的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
zebrahgp
評論于 2008-10-16 19:52
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
db4o,沒有主鍵?
YY一下未來的用戶界面
gwt和echo2的對比
轉貼:Comparing the Google Web Toolkit to Echo2
編程使用SDO[EMF兄弟篇]
EMF編程使用
Java版2006新春祝福
奢談未來的java語言。。。
CALENDER
<
2007年2月
>
日
一
二
三
四
五
六
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
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(10)
給我留言
查看公開留言
查看私人留言
隨筆分類
學習筆記(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時,同時有多個設備發送,在同一時間接收到的會有丟失的情況,怎么解決呢?snmp4j自帶的ThreadPool類有沒有在這方面起到多線程作用?
--analyser
3.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
--litao
4.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
--litao
5.?re: 編程使用SDO[EMF兄弟篇]
評論內容較長,點擊標題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
亚洲AV日韩精品一区二区三区
|
曰批视频免费30分钟成人
|
亚洲äv永久无码精品天堂久久
|
免费很黄很色裸乳在线观看
|
亚洲中文字幕无码久久2020
|
成人免费无码大片A毛片抽搐色欲
|
久久亚洲精品成人无码网站
|
91免费国产精品
|
亚洲狠狠狠一区二区三区
|
**毛片免费观看久久精品
|
亚洲国产精品久久久久秋霞影院
|
精品无码AV无码免费专区
|
亚洲视频在线不卡
|
国产成人免费在线
|
亚洲av永久综合在线观看尤物
|
青青视频观看免费99
|
亚洲中文字幕乱码AV波多JI
|
国产一级淫片免费播放
|
日韩免费码中文在线观看
|
亚洲尤码不卡AV麻豆
|
91精品国产免费入口
|
亚洲一区在线视频观看
|
女人18毛片特级一级免费视频
|
在线播放亚洲精品
|
亚洲免费观看视频
|
2021免费日韩视频网
|
亚洲成av人在线观看网站
|
亚洲人成人无码网www国产
|
99国产精品免费观看视频
|
久久久久亚洲国产
|
国产亚洲精品国看不卡
|
免费不卡在线观看AV
|
亚洲午夜成人精品无码色欲
|
国产福利电影一区二区三区,亚洲国模精品一区
|
亚洲精品无AMM毛片
|
亚洲精品无码久久久影院相关影片
|
久久不见久久见免费视频7
|
欧洲亚洲国产精华液
|
亚洲视频2020
|
亚洲国产成人精品无码久久久久久综合
|
亚洲精品无码专区在线播放
|