background image

Java SE 6 新特性: Java DB   

和 JDBC 4.0

简介: 2006 年底,Sun 

 

公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,

 

代号 Mustang

 

(野马)。跟 Tiger(Java SE 5)相比,Mustang 

 

在性能 方面有了不错的提

 

升。与 Tiger   

在 API 

 

库方面的大幅度加强相比,虽然 Mustang   

在 API 库方面的新特性显得不

太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML

 

,编译器 API,数

据库,JMX

 

,网络和 Instrumentation 

 

方面都有不错的新特性和功能加强。本系列文章主要介

 

绍 Java SE 6 在 API 

 

库方面的部分新特性,通过一些例子和讲解,帮助开发者在 编程实践当

 

中更好的运用 Java SE 6

 

 

,提高开发效率。本文是系列文章的第 5 

 

篇,介绍了 Java SE 6 在数

 

据库编程方面的新特性。

 

长久以来,由于大量(甚至几乎所有)的 Java 

 

应用都依赖于数据库,如何使用 Java 语

 

言高效、可靠、简洁地访问数据库一直是程序员们津津乐道的话题。新发布的 Java SE 6 也在这

 

 

方面更上层楼,为编程人员提供了许多好用的新特性。其中最显著的,莫过于 Java SE 6 拥有

 

了一个内嵌的 100%   

用 Java 

 

语言编写 的数据库系统。并且,Java 6 

 

开始支持 JDBC 4.0 的

一系列新功能和属性。这样,Java SE 在对持久数据的访问上就显得更为易用和强大了。

 Java DB:Java 6 

 

里的数据库。新安装了 JDK 6 的程序员们也许会发现,除了传统的 

bin、jre 等目录,JDK 6 

 

新增了一个名为 db 

 

的目录。这便是 Java 6 的新成员:Java DB。这是

 

一个纯 Java 实现、开源的数据库管理系统(DBMS

 

),源于 Apache 软件基金会(ASF  

) 名

 

下的项目 Derby

 

。它只有 2MB 

 

大小,对比动辄上 G 

 

的数据库来说可谓袖珍。 但这并不妨碍 

Derby 

 

功能齐备,支持几乎大部分的数据库应用所需要的特性。 更难能可贵的是,依托于 

ASF 强大的社区力量,Derby 

 

得到了包括 IBM   

和 Sun 等大公司以及全世界优秀程序员们的

 

 

支持。这也难怪 Sun 公司会选择其 10.2.2

 

版本纳入到 JDK 6 中,作为内嵌的数据库。这就好

 

像为 JDK 注入了一股全新的活力:Java 程序员不再需要耗费大量精力安装和配置数据库,就

 

 

能进行安全、易用、标准、并且免费的数据库编程。在这一章中,我们将初窥 Java DB 的世界,

 

来探究如何使用它编写出功能丰富的程序。

Hello, Java DB

 

:内嵌模式的 Derby   

。 既然有了内嵌(embedded)的数据库,就让我

     

们从一个简单的范例(代码在 清 单 1 中列出)开始,试着使用它吧。这个程序做了大多数数

 

据库应用都可能会做的操作: DBMS

 

中创建了一个名为 helloDB 

   

的数据库; 在 创建了一张

 

 

数据表, 取名为 hellotable

 

;向表内插入了两条数据;然后,查询数据并将结果打印在 控制

台上;最后,删除表和数据库,释放资源。

 

清单 1. HelloJavaDB 

 

的代码

public class HelloJavaDB {

 public static void main(String[] args) { 

try { // load the driver
  Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstanc

e(); System.out.println("Load the embedded driver");

 Connection conn = null; 

Properties props = new Properties(); 
props.put("user", "user1"); 
props.put("password",   "user1");   //create   and   connect   the   database