1. Derby 介绍
将目光放在小 Derby 的原因是纯绿色、轻巧、内存占用小,分分钟在你机子跑起来,自己做点需要连接数据库的代码实践非常方便。
虽然 Mysql 也可以,多一种选择,不是也挺好么?
Apache Derby是一个完全用 java 编写的数据库,Derby是一个Open source的产品。
Apache Derby非常小巧,核心部分derby.jar只有2M,既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。
官网下载地址:http://db.apache.org/derby/derby_downloads.html
官网文档地址: https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/getstart/index.html
点击进入版本中,注意查看 Build Environment 需要的条件,点击下载 zip 解压到随意目录即可。
你也可以不用下载,从JDK1.6 开始,derby 已经住进了 JDK 的大家庭,安装目录下面 db 文件夹就是小 derby,当然官网可以更自由的选择版本。
2. 稍稍配置下环境变量
Derby 基于 Java 编写,你机子上需要存在 Java JRE,具体安装和配置就不说了。
下面是 Derby 需要配置的的系统环境变量,配置环境变量是想让系统知道去哪找命令对应的执行程序。
当然你也可以不配置任何环境变量,直接切换到 derby 的安装目录下面找到 bin 文件夹,双击对应的服务。
Name: DERBY_HOME Value: E:Javaderbydb-derby-10.10.1.1-bin 在Path加入:%DERBY_HOME%in 在CLASSPATH加入:%DERBY_HOME%lib derby.jar;%DERBY_HOME%libderbyclient.jar;%DERBY_HOME%libderbytools.jar;%DERBY_HOME%libderbynet.jar
切到 cmd 黑框下面,敲 sysinfo
至此,小巧的 Derby 已经成功安装在你的电脑上,是不是很快?骚年,可以进行折腾了。
3. Derby 操作和 Java 访问
a.创建数据库,并且进行连接(存在则连接,不存在创建后连接)
--内嵌模式 connect 'jdbc:derby:dedb;user=db_user1;password=111111;create=true'; --服务器模式 connect 'jdbc:derby://127.0.0.1:1527/debryDB;user=db_user1;password=111111;create=true';
b.新建系统用户表
create table t_user(uuid varchar(32), name varchar(10), age int, address varchar(40));
c.插入一些测试数据
insert into t_user values('B82A6C5244244B9BB226EF31D5CBE508', 'Miachel', 20, 'street 1'); insert into t_user values('B82A6C5244244B9BB226EF31D5CBE509', 'Andrew', 35, 'street 1'); insert into t_user values('B82A6C5244244B9BB226EF31D5CBE510', 'Orson', 47, 'street 1'); insert into t_user values('B82A6C5244244B9BB226EF31D5CBE511', 'Rambo', 19, 'street 1');
注意:操作 Derby 需要使用 ij 工具(和 oracle 的 plus 差不多),CMD 下面输入 ij 即可进入 ij 模式;
创建数据库的路径取决于你 CMD 的路径,如 C:UsersAdministrator> 下,创建的 Derby 数据库就在该目录下面;
如果你对 sql 比较熟悉的话,操作 derby 没有任何问题。
e.在 Java 程序中使用 Derby
import java.sql.*; public class DerbyTest { private static String driver = "org.apache.derby.jdbc.EmbeddedDriver"; private static String protocol = "jdbc:derby:"; String dbName = "E:\Users\Workspaces\Derby\dedb"; public static void loadDriver() { try { Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); } } public void getDataFromDerby() { try { Connection conn = DriverManager.getConnection(protocol + dbName + ";user=root;password=root;create=true"); Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery("select * from t_user"); while (resultSet.next()) { System.out.println(resultSet.getString(1)); System.out.println(resultSet.getString(2)); } conn.close(); statement.close(); resultSet.close(); } catch (Exception e1) { e1.printStackTrace(); } } public static void main(String[] args) { DerbyTest derbyTest = new DerbyTest(); loadDriver(); derbyTest.getDataFromDerby(); } }