Derby數(shù)據(jù)庫學(xué)習(xí)1:概述
Topic1 概述
Derby是一個(gè)JVM平臺(tái)上的RDBMS系統(tǒng),能夠作為獨(dú)立系統(tǒng)使用于網(wǎng)絡(luò)環(huán)境下,也可以作為嵌入式數(shù)據(jù)庫使用,支持事務(wù)和主從復(fù)制。Derby的數(shù)據(jù)是平臺(tái)無關(guān)和可復(fù)制的,數(shù)據(jù)可以隨意移動(dòng)到不同的平臺(tái)使用而無需修改。
1.1 客戶端程序編寫
客戶端程序編寫需要CLASSPATH中包含derby.jar、當(dāng)前區(qū)域?qū)?yīng)的Locale jar(中國是derbyLocale_zh_CN.jar),如果在網(wǎng)絡(luò)環(huán)境下使用還需要加上derbynet.jar。一個(gè)Jython實(shí)例程序如下:
# -*- coding:utf-8 -*-
import java.sql
conn = None
stmt = None
rs = None
try:
java.lang.Class.forName("org.apache.derby.jdbc.JDBC")
conn = java.sql.DriverManager.getConnection("jdbc:derby:path_to_your_db")
stmt = conn.prepareStatement("SELECT * FROM STUDENTS WHERE ID = ?")
stmt.setInt(1, 1)
stmt.executeQuery()
rs = stmt.getResultSet()
while rs.next():
print("Id:%d, name:%s, age:%d" % (rs.getInt(1), rs.getString(2), rs.getInt(3)))
except Exception, err:
print(err)
finally:
if rs:
rs.close()
if stmt:
stmt.close()
if conn:
conn.close()
1.2 命令行程序使用
derby的命令行管理主要靠bin目錄下的ij實(shí)現(xiàn)。進(jìn)入ij后,使用如下命令可以連接到數(shù)據(jù)庫:
CONNECT 'jdbc:derby:path_to_your_db;create=true;user=some;password=123456;';
系統(tǒng)會(huì)在 path_to_your_db新建數(shù)據(jù)庫。如果數(shù)據(jù)庫已經(jīng)存在,就將create改為false。
如果想要使用網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫服務(wù)器,就使用bin目錄下的startNetworkServer工具:
startNetworkServer -h 127.0.0.1 -p 41000
此時(shí)當(dāng)前目錄下的所有數(shù)據(jù)庫能夠被訪問。假如有一個(gè)school數(shù)據(jù)庫,那么JDBC連接字符串就是
jdbc:derby://127.0.0.1:40000/school
注意驅(qū)動(dòng)應(yīng)為org.apache.derby.jdbc.ClientDriver,同時(shí)保證加載了derbyclient.jar。