闲来无聊,玩玩JavaDB(Derby)
Part I新安装了 JDK 6 的程序员们也许会发现,除了传统的 bin、jre 等目录,JDK 6 新增了一个名为 javadb 的目录。这便是 Java 6 的新成员:Java DB。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。- 摘自百度百科。
一开始学习Java的时候,依稀还记得安装JDK的时候有个JavaDB。当初我这个连Java基本语法都不懂的人当然没去理会。慢慢的,在学习的过程中,我接触到了几款数据库管理系统(Oracle、DB2、SqlServer、MySql、Access等等)。但是,我们在开发的时候为了开发和测试,就需要安装和配置那么多不同种类的数据库,感觉十分的麻烦。于是我就开始寻找一款不需要安装、不需要配置、体积小而且功能强大、与Java兼容性好的数据库管理系统。终于让我找到了Derby。
Part II
首先列出一些Derby的JDBC连接配置
[*]驱动:org.apache.derby.jdbc.EmbeddedDriver
[*]URL:jdbc:derby:<DataBaseName>[;create=true][;user=UserName][;password=Password]
[*]其中:数据库名必选,后面为可选参数,create参数用于指定,当数据库不存在时是否创建数据库。
Part III
下面借这个例子,让大家能感受一下Derby的方便。
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px;">package com.gzmu.derby.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public final class DerbyUtil {
private static volatile DerbyUtil instance;
public static DerbyUtil getInstance() {
if (instance == null) {
synchronized (DerbyUtil.class) {
if (instance == null)
instance = new DerbyUtil();
}
}
return instance;
}
private static final String driverName = "org.apache.derby.jdbc.EmbeddedDriver";
private static final String url = "jdbc:derby:derbytest;create=true";
private final Log log = LogFactory.getLog(getClass());
private DerbyUtil() {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
log.error(e);
}
}
public void execute(Processor processor) {
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
conn.setAutoCommit(false);
conn.setSavepoint();
processor.execute(conn);
conn.commit();
} catch (SQLException e) {
log.error(e);
try {
conn.rollback();
} catch (SQLException e1) {
log.error(e1);
}
} finally {
if (conn != null) {
try {
if (!conn.isClosed())
conn.close();
} catch (SQLException e) {
log.error(e);
}
}
conn = null;
}
}
}
页:
[1]