|
|
Derby数据库是由Apache下的一个开源的DB项目,与其它DB相比,它有如下的优点:
1. 完全用Java实现
2. 支持JDBC及SQL标准
3. 全部文件只有2M左右
4. 提供嵌入式的支持,可以简单地嵌入到其它的Java项目
5. 同时提供网络数据库的功能,可以用C/S方式访问
一、下载
Derby项目的首页为:http://db.apache.org/derby/index.html,大家可以在该网站找到下载路径及相关文档,现在的最新版本为10.5.3.0。
二、安装
Derby下载文件为一个Zip压缩档,只需将该压缩档解压到一个目录(这里用DERBY_HOME代替)即可。
三、本地访问
Derby可以作为一个本地数据库使用,这点就像是Access,下面将介绍如何使用Derby提供的ij工具来建立一个新的DB。
新建一个demo目录,在demo目录下运行:
DERBY_HOME\bin\ij
然后输入
connect'jdbc:derby:myDemo;create=true';
建立一个新的DB名字为myDemo,保存在当前目录,关于ij的用法可以输入help;查看相关帮助。
四、网络访问
在demo目录下,运行
java-jarDERBY_HOME\lib\derbyrun.jarserverstart
这时,Derby服务器已启动成功,默认的端口为1527,打开另外一个Console,运行ij
connect'jdbc:derby://localhost:1527/myDemo';
则可成功的连接到刚才建立的myDemo数据库,为便于下面测试,运行以下语句新建一个test表,并插入两笔数据。
createtabletest(idint,namevarchar(20));
insertintotestvalues(0,'Jack');
insertintotestvalues(1,'Tom');
五、Java代码访问
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DerbyDemo {static String EMBEDED_DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";static String NET_DRIVER = "org.apache.derby.jdbc.ClientDriver";static String DB_NAME = "myDemo";static String HOST_URL = "//localhost:1527/";/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubConnection conn = null;Statement stmt = null;ResultSet rs = null;try {conn = getNetwrokConnect();stmt = conn.createStatement();rs = stmt.executeQuery("select * from test");while (rs != null && rs.next()) {System.out.println(rs.getString(2));}} catch (Exception ex) {System.out.println(ex.getMessage());} finally {try {rs.close();} catch (Exception e) {}rs = null;try {stmt.close();} catch (Exception e) {}stmt = null;try {conn.close();} catch (Exception e) {}conn = null;}}public static Connection getEmbededConnect() {try {Class.forName(EMBEDED_DRIVER);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockthrow new RuntimeException(e.getMessage());}try {return DriverManager.getConnection("jdbc:derby:" + DB_NAME);} catch (SQLException e) {// TODO Auto-generated catch blockthrow new RuntimeException(e.getMessage());}}public static Connection getNetwrokConnect() {try {Class.forName(NET_DRIVER);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockthrow new RuntimeException(e.getMessage());}try {return DriverManager.getConnection("jdbc:derby:" + HOST_URL+ DB_NAME);} catch (SQLException e) {// TODO Auto-generated catch blockthrow new RuntimeException(e.getMessage());}}}
将DerbyDemo保存到demo目录下,运行如下代码编译并运行即可通过网络访问(需按照第四步启动服务器)
javac -cp DERBY_HOME\lib\derbyclient.jar DerbyDemo.java
java -cp .;DERBY_HOME\lib\derbyclient.jar DerbyDemo
使用嵌入式访问只需将main中的getNetwrokConnect改为getEmbededConnect即可。
|
|