闲来无聊,玩玩JavaDB(Derby)
2010-07-10 14:57
357 查看
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的方便。
这里用到了策略模式来简化Connection的创建和事务的处理。还使用到了JUnit4来测试我们的DerbyUtil。
在没有建立数据库之前,先执行一下代码就会自动的为我们创建数据库。然后我们可以通过Eclipse的工具来为数据库创建表和插入数据,当然如果有使用Hibernate经验的读者应该知道使用Hibernate的auto.hbm2ddl来自动完成建表的操作。
怎么样,Derby的使用就是如此的简单,你可以告别繁重的安装和配置操作,轻松的编写一些小程序来测试自己的代码。
新安装了 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的方便。
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; } } }
package com.gzmu.derby.util; import java.sql.Connection; public interface Processor { void execute(Connection conn); }
package com.gzmu.derby.util; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; public class DerbyUtilTest { @Test public void testExecute() throws SQLException { DerbyUtil util = DerbyUtil.getInstance(); util.execute(new Processor() { @Override public void execute(Connection conn) { try { ResultSet rs = conn.prepareStatement("select * from t_user").executeQuery(); while (rs.next()) { System.out.println(rs.getString(1)); } } catch (SQLException e) { e.printStackTrace(); } } }); } }
这里用到了策略模式来简化Connection的创建和事务的处理。还使用到了JUnit4来测试我们的DerbyUtil。
在没有建立数据库之前,先执行一下代码就会自动的为我们创建数据库。然后我们可以通过Eclipse的工具来为数据库创建表和插入数据,当然如果有使用Hibernate经验的读者应该知道使用Hibernate的auto.hbm2ddl来自动完成建表的操作。
怎么样,Derby的使用就是如此的简单,你可以告别繁重的安装和配置操作,轻松的编写一些小程序来测试自己的代码。
相关文章推荐
- 又一次闲来无聊,使用Java的动态代理机制来模拟AOP
- 又一次闲来无聊,使用Java的动态代理机制来模拟AOP
- 闲来无聊 听几首歌 休息的时候
- 闲来无聊,想了下秒杀、抢购实现方法
- 无聊 玩玩ArrayList
- javaDB—— derby简单操作
- 闲来无聊,随便看下asp.net Mvc 的收获
- 闲来 无聊 比较 php IDE
- 操作系统三个简单的部分(Operating Systems in Three Easy Pieces闲来无聊,翻译的)1,2(操作系统的介绍部分)
- 闲来无聊做了一个批处理编辑工具!
- javaDB—— derby简单操作
- Delphi - 闲来无事,自己写个Timer玩玩
- JavaDB(Derby)数据库
- 最近百度云盘不提供搜索,闲来无事,玩玩python爬虫,爬一下百度云盘的资源
- 操作系统三个简单的部分(Operating Systems in Three Easy Pieces闲来无聊,翻译的)虚拟化部分-原文编号4进程的概念
- 闲来无聊,研究一下Web服务器 的源程序
- 闲来无聊,敲了一个快速幂的板子
- 闲来无聊
- 额~无聊玩玩的~
- 简单方便的javaDB中的derby使用