Atitit.各種 資料類型 ( 樹形結構,表形資料 ) 的結構與儲存資料庫 attilax 總結,atititattilax
Atitit.各種 資料類型 ( 樹形結構,表形資料 ) 的結構與儲存資料庫 attilax 總結
1. 資料結構( 樹形結構,表形資料,對象結構 ) 1
2. 程式設計語言中對應的資料結構 java c# php ( Dic/Map List datatable ) 1
3. 資料庫儲存資料 1
4. 資料的表形顯示( 多條記錄 與單條記錄 ) 2
5. ASP.NET 資料控制項:GridView,DataList,Repeater ,DetailsView,FormView。 2
6. 樹形資料常見的操作 2
6.1. 擷取所有子節點 2
7. Java 操作註冊表 2
7.1. 使用Preferences API (限定訪問路徑了) 2
7.2. 使用JNI4
7.3. Jregistrykey 推薦 4
7.4. Jregistry 4
1. 資料結構( 樹形結構,表形資料,對象結構 )
2. 程式設計語言中對應的資料結構 java c# php ( Dic/Map List datatable )
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:1466519819@qq.com
轉載請註明來源: http://blog.csdn.net/attilax
3. 資料庫儲存資料
表形資料當然適合 常見的關係型資料庫了。。
樹形資料庫(層次資料庫ldap ,,,註冊表 ) ,樹形資料庫可以使用LDAP來訪問,相當於rmdb的sql
物件導向資料庫 db4o
4. 資料的表形顯示( 多條記錄 與單條記錄 )
5. ASP.NET 資料控制項:GridView,DataList,Repeater ,DetailsView,FormView。
ASP.NET 資料控制項綜述:
1.前3個用於呈現多條記錄,後面2個用於呈現單條資料明細,即常用的記錄明細。
2.GridView和DetailsView控制項的布局固定,自訂資料顯示的布局功能有限,一般適合布局簡單的
資料呈現。3.DataList,Repeater和FormView資料控制項都有很強的自訂布局能力,如果資料呈現
需要較為複雜的布局方案,這3個控制項是首選。
6. 樹形資料常見的操作6.1. 擷取所有子節點
7. Java 操作註冊表7.1. 使用Preferences API (限定訪問路徑了)
由於java程式是“write once, run everywhere”,用java讀寫註冊表,那程式的跨平台性就差了。java對註冊表的操作,在jdk1.4以前的版本中,那是不可能的,只能用 JNI來實現;然而jdk1.4之後提供的prefs包可以操作windows註冊表,不過定死了root只在SOFTWARE/JavaSoft /prefs下,估計也是出於這種兩難吧,又要保證所謂平台無關,還要照顧大家對windows的依賴
。而 JDK 提供操作 Windows 的 API 也就是 Preferences,因為這個 API 也是跨平台的,所功能比較弱,在 Win32 下只能用來操作 HKCU\Software\JavaSoft 和 HKLM\Software\JavaSoft 下及子節點的資料。
自由訪問註冊表其他鍵的值光用 Java 是做不到的,必然方案就是 JNI,
Preferences API並不是為訪問Windows註冊表而設計的,這是值得指出的一點。
我們之所以會有上面的誤解是由於Sun的Windows版本的JDK在實現Preferences API時使用了Windows註冊表作為存放庫,即我們用Preferences API儲存的資料會儲存到Windows註冊表中,這樣Preferenes API也就有了訪問Windows註冊表的能力。但是換到其它的平台或其它廠商的JDK實現又會怎麼樣呢?這個問題是和Preferences API的實現相關的,我們沒有辦法回答。
如果程式不關心存放庫的細節,只是要找一個存放資料的地方,那麼Preferences API很合適。
Preferences API也是有局限的,請您考慮兩個問題:
· 一個Java軟體,這次我在Sun的JDK上運行並使用Preferences API儲存了我的個人喜好,下次我在IBM的JDK上運行,這時我的個人喜好還可以通過Preferences API得到嗎?可能可以也可能不可以,這時的行為是由Sun和IBM的Preferences API實現決定的。(在相同的JDK實現上可以使用Preferences API來在不同的程式間共用資料)
· 一個Java軟體需要讓使用者佈建是否和作業系統一起啟動,類似的需求還很多。這類需求就是要求Java程式有真正的和相關作業系統協同的能力。這種能力不是Preferences API的設計目標。
java讀寫註冊表需要用到兩種方式:
1. java.util.prefs.* 中的包
其中 Preferences.systemRoot() 得到的是 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs 可以在此位置之下方便的進行註冊表的 讀寫
Preferences.userRoot() 得到的是 HKEY_LOCAL_USER/Software/JavaSoft/prefs,可以在此位置下進行註冊表
但是對其他
位置操作就不方便。
範例程式碼:
import java.util.prefs.*;
public class Registery {
String[] keys = {"aaa", "bbb", "ccc"};
String[] values = {"1", "2", "3"};
//把相應的值儲存到變數中去
public void writeValue() {
// HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs下寫入註冊表值.
Preferences pre = Preferences.systemRoot().node("/javaplayer");
for (int i = 0; i < keys.length; i++) {
pre.put(keys, values);
}
}
public static void main(String[] args) {
Registery reg = new Registery();
reg.writeValue();
}
}
執行代碼的結果會在 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs/javaplayer 位置插入三個鍵值
7.2. 使用JNI
Windows作業系統提供了操作註冊表的API,因此用JNI將Java和這些API串連起來我們就獲得了用Java操作註冊表的能力。這說起來有些簡單,實現起來卻需要處理大量的細節。幸運的是這樣的工作已經有人做了,我們要感謝他們。下面我們就來看看其中的一個包。
com.ice.jni.registry包是通過JNI(Java native interface)實現的Windows註冊表操作API,可以用來訪問、修改和匯出Windows註冊表。現在這個包已經公開了,可以放心的使用而不 必擔心license的問題,並且包括一個構建好的DLL和Java、C的原始碼。它可以在Java 1.1和更高的版本上工作。
2. 開源讀寫註冊表的庫 registry-3.1.3 首頁地址:http://www.trustice.com/java/jnireg/index.shtml
下載後需要將ICE_JNIRegistry.dll放到目前正在用的 jdk的bin目錄下
7.3. Jregistrykey 推薦7.4. Jregistry
jRegistry通過JNI技術來訪問WINDOWS註冊表API。