1. Derby 介绍

将目光放在小 Derby 的原因是纯绿色、轻巧、内存占用小,分分钟在你机子跑起来,自己做点需要连接数据库的代码实践非常方便。

虽然 Mysql 也可以,多一种选择,不是也挺好么?

Apache Derby是一个完全用 java 编写的数据库,Derby是一个Open source的产品。

Apache Derby非常小巧,核心部分derby.jar只有2M,既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。

官网下载地址:http://db.apache.org/derby/derby_downloads.html

点击进入版本中,注意查看Build Environment 需要的条件,点击下载 zip 解压到随意目录即可。

回到顶部

2. 稍稍配置下环境变量

Derby 基于 Java 编写,你机子上需要存在 Java JRE,具体安装和配置就不说了。

下面是 Derby 需要配置的的系统环境变量,配置环境变量是想让系统知道去哪找命令对应的执行程序。

Name:DERBY_HOMEValue:E:\Java\derby\db-derby-10.10.1.1-bin在Path加入:%DERBY_HOME%\bin在CLASSPATH加入:%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar

切到 cmd 黑框下面,敲 sysinfo

至此,小巧的 Derby 已经成功安装在你的电脑上,是不是很快?骚年,可以进行折腾了。

回到顶部

3. Derby 操作和 Java 访问

a.创建数据库,并且进行连接(存在则连接,不存在创建后连接)

connect'jdbc:derby:dedb;user=root;password=root;create=true';

b.新建系统用户表

createtablet_user(uuidvarchar(32),namevarchar(10),ageint,addressvarchar(40));

c.插入一些测试数据

insertintot_uservalues('B82A6C5244244B9BB226EF31D5CBE508','Miachel',20,'street1');insertintot_uservalues('B82A6C5244244B9BB226EF31D5CBE509','Andrew',35,'street1');insertintot_uservalues('B82A6C5244244B9BB226EF31D5CBE510','Orson',47,'street1');insertintot_uservalues('B82A6C5244244B9BB226EF31D5CBE511','Rambo',19,'street1');

注意:操作 Derby 需要使用 ij 工具(和 oracle 的 plus 差不多),CMD 下面输入 ij 即可进入 ij 模式;

创建数据库的路径取决于你 CMD 的路径,如C:\Users\Administrator> 下,创建的 Derby 数据库就在该目录下面;

如果你对 sql 比较熟悉的话,操作 derby 没有任何问题。

e.在 Java 程序中使用 Derby

importjava.sql.*;publicclassDerbyTest{privatestaticStringdriver="org.apache.derby.jdbc.EmbeddedDriver";privatestaticStringprotocol="jdbc:derby:";StringdbName="E:\\Users\\Workspaces\\Derby\\dedb";publicstaticvoidloadDriver(){try{Class.forName(driver).newInstance();}catch(Exceptione){e.printStackTrace();}}publicvoidgetDataFromDerby(){try{Connectionconn=DriverManager.getConnection(protocol+dbName+";user=root;password=root;create=true");Statementstatement=conn.createStatement();ResultSetresultSet=statement.executeQuery("select*fromt_user");while(resultSet.next()){System.out.println(resultSet.getString(1));System.out.println(resultSet.getString(2));}conn.close();statement.close();resultSet.close();}catch(Exceptione1){e1.printStackTrace();}}publicstaticvoidmain(String[]args){DerbyTestderbyTest=newDerbyTest();loadDriver();derbyTest.getDataFromDerby();}}