Derby快速上手
by lostfireDerby是IBM送給開源社區的又一個禮物,是一個pure java的數據庫,現在已經被列入到java1.6中。
不知道對于大數據量的性能如何,但傳說中啟動derby只會給JVM添加2M的內存,對那些小數據庫應用,比如像用access那種應該是挺有誘惑力的。
另外,麻雀雖小,五臟俱全,功能要比access多得多咯,包括事務處理,并發,觸發器都有,管理又簡單,因此自己用來做點工具正好合適。
廢話少說,介紹一下我折騰了半天的經驗吧。
我的Derby配置過程:
1,下載db-derby-10.1.3.1-bin.tar.gz,derby_core_plugin_10.1.3.zip和derby_ui_plugin_1.1.0.zip,把兩個插件安裝到eclipse上
2,打開ecllipse,新建一個project
3,右鍵這個project,選擇Apache Derby,再選擇add apache derby native,發現只是給我的project添加了幾個derby的jar,還不是在我看著順眼的lib目錄里,索性干掉,換上db-derby- 10.1.3.1-bin.tar.gz解壓出來以后lib目錄下的jar文件,在Build Path里設置一下;
4,右鍵Project,在apache derby里選擇start apache derby network server,控制臺可以看到derby啟動后打出的“服務器準備在端口 1527 上接受連接。”
5,右鍵Project,在apache derby里選擇ij(Interactive SQL),啟動SQL控制臺;
6,輸入connect 'jdbc:derby:testdb;create=true'; 注意要有單引號,可以在工程跟目錄下創建testdb數據庫,可以看到一個新建的目錄testdb,那里的文件就是數據庫咯;
7,用標準的SQL語句來建一個數據庫試試:
create table test (a varchar(4) not null, b char(2) primary key);
居然可以用,太神奇了,呵呵
8,再插入一條語句試試呢,insert into test(a,b) values('a','11');,嗯,不錯,可以用select 查出來的哦。
9,再插一下:insert into test(a,b) values('a','11');,哦哦,報錯了,“
錯誤 23505:語句異常終止,因為它導致“TEST”上所定義的“SQL060710092132480”標識的唯一或主鍵約束或唯一索引中出現重復鍵值。” 呵呵。
10,好了,現在可以像你控制的其他數據庫一樣來控制Derby了。
如果上述方法不行,或者你習慣了在eclipse之外使用和管理數據庫,那么可以很方便的把Derby“裝”在系統里。下面我說一下步驟:
1,把db-derby-10.1.3.1-bin.tar.gz解壓到c:\derby,使lib和framework兩個目錄在c:\derby下邊即可
2,設置環境變量
- 設置一個c:\derby\framework\embeded\bin或c:\derby\framework\NetworkServe\bin到Path中,這樣我們就可以直接執行上邊介紹的connect這樣的命令而不用每次鉆到那個目錄下去執行了
- 設置c:\derby\lib\derby.jar;c:\derby\lib\derbytoos.jar到CLASSPATH中,以便讓這些java編成的命令能夠正確執行;
3,打開cmd
4,敲入startNetworkServer,可以看到像在eclisp中提示的那樣啟動了server
5,再打開一個cmd,敲入sysinfo,可以看到derby的環境信息了,注意在java user dir這一項,也許是java用戶目錄上和上邊看到的會有所不同哦,這樣在connect 'jdbc:derby:testdb;create=true';的建的數據庫目錄就不一樣咯。
6,敲入ij,好了,進入到上邊的交互界面,可以建一個數據庫看看了。
7,最后在另外一個cmd中敲入stopNetworkServer就可以關閉數據庫了。
如果你兩種方法都試過了,那么需要注意的,還是上邊步驟5的問題,這個問題是你可能隨時會啟動一個數據庫或新建一個數據庫,但如果你剛剛使用derby,你可能還沒有察覺。
derby實際上有兩種啟動方式,一種是嵌入式的,一種是網絡服務器的啟動。
1,我們在eclipse中右鍵start apache derby network server那個,就是網絡服務器的啟動方式,在這種方式下可以用另外一臺計算機在ij中以:
connect 'jdbc:derby://192.168.0.28:1527/testdb' 的方式進行鏈接。
2,第二種啟動方式是在ij里邊就直接
connect 'jdbc:derby:testdb'
這實際是在連
當前配置環境下java user dir下那個目錄的數據庫。
實際上derby的訪問更像是一種使用derby driver對本地文件系統的訪問,不管啟動不啟動網絡服務器,都可以用driver訪問本地的數據庫。這樣,在ij里邊像第二種方式那樣建立連接是完全可以的。啟動了網絡服務器,只不過是能夠讓其他主機訪問罷了。
posted on 2006-07-10 22:47
rd2pm 閱讀(2182)
評論(3) 編輯 收藏 所屬分類:
other