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