一. Derby简介:
新安装了 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 的世界,来探究如何使用它编写出功能丰富的程序。
二. 代码范例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class helloDB {
public static void main(String[] args) {
try {
//加载驱动
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = null;
Properties props = new Properties();
props.put("user", "admin");//设置数据库用户名
props.put("password", "123456");//设置数据库密码
//创建和连接数据库userDB
conn = DriverManager.getConnection(
"jdbc:derby:userDB;create=true", props);
//设置提交状态为手动提交
conn.setAutoCommit(false);
//创建表 tuser 注:表名一定不要是关键字
Statement s = conn.createStatement();
s.execute("create table tuser(name varchar(40), age int)");
//插入数据
s.execute("insert into tuser values('zxm', 25)");
s.execute("insert into tuser values ('zlm', 24)");
// 获得数据集合并循环输出
ResultSet rs = s
.executeQuery("SELECT name, age FROM tuser");
System.out.println("name\t\tage");
while (rs.next()) {
StringBuilder builder = new StringBuilder(rs.getString(1));
builder.append("\t");
builder.append(rs.getInt(2));
System.out.println(builder.toString());
}
//删除表tuser
s.execute("drop table tuser");
rs.close();
s.close();
//提交事务
conn.commit();
conn.close();//关闭连接
try {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException se) {
System.out.println("Database shut down normally");
}
} catch (Throwable e) {
e.printStackTrace();
}
}
}
输出结果: