日期:2014-05-16  浏览次数:20472 次

JDBC连接H2 数据库

H2 Database是一个非常轻量级的嵌入式关系型数据库,我通常拿它来做个Demo啊,评估一个新框架啊什么的。非常轻便易用。

?

  • 先看一下如何通过jdbc访问h2吧
写道
H2 Server JDBC Driver
DRIVER CLASS: org.h2.Driver
DRIVER LOCATION: Enter the location of the jar file containing the H2 JDBC Driver
JDBC URL FORMAT: jdbc:h2:tcp://<host>/<database>

H2 Embedded JDBC Driver
DRIVER CLASS: org.h2.Driver
DRIVER LOCATION: Enter the location of the jar file containing the H2 JDBC Driver
JDBC URL FORMAT: jdbc:h2:file:<filepath>(其实还可以这样写: jdbc:h2:<filepath>)

?

简单说明一下:

1.通过JDBC连接H2数据库有两种方式,server和embedded

前者就是通常意义上的连接数据库服务器,而后者可以理解为,访问某主机上的数据文件。

个人推荐第二种方式——嵌入式,也是h2的亮点。因为不需要额外启动数据库服务,你的系统看起来就像没用数据库一样。

2.关于JDBC驱动。就是在你下载的h2数据库的bin目录下的那个jar文件。它同时也是h2的程序文件!

3.JDBC URL 中的<host>就是主机地址了,<filepath>和<database> 说的都是数据库文件地址+数据库名,若没有则自动新建这个数据库。~表示系统用户目录C:\Documents and Settings\<user>,如果不指明盘符,则默认路径是是应用所在盘符下根目录。

?

例如?? jdbc:h2:E:/h2db/ibatistest 表示我要直接连接本地机器上E:/h2db目录下的ibatistest这个数据库。

又例如 jdbc:h2:tcp://localhost/~/mini-web 表示我要通过访问数据库服务的方式连接本机上C:\Documents and Settings\<user>目录下的mini-web数据库。注意server方式连接,此前应启动数据库,运行h2的bin目录下h2w.bat这个批处理,看到系统托盘会多出h2的图标,同时浏览器自动打开,可以在这里通过界面方式操作数据库。

?

  • 看一下如何在Hibernate中配置信息:
写道
jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:tcp://localhost/~/mini-web
jdbc.username=sa
jdbc.password=
hibernate.dialect=org.hibernate.dialect.H2Dialect
?

?

?

  • H2自带的数据库连接池

又一件很令人惊喜的事情,我们可以抛弃第三方的连接池了

看一下用法:

 import java.sql.*;
 import org.h2.jdbcx.JdbcConnectionPool;
 public class Test {
     public static void main(String... args) throws Exception {
         JdbcConnectionPool cp = JdbcConnectionPool.create(
             "jdbc:h2:~/test", "sa", "sa");
         for (String sql : args) {
             Connection conn = cp.getConnection();
             conn.createStatement().execute(sql);
             conn.close();
         }
         cp.dispose();
     }
 }

?

H2果然是麻雀虽小,五脏俱全啊

?

1 楼 zlfoxy 2010-11-22  
 
2 楼 sunnyfaint 2011-10-29  
想看懂的,……,还是没懂。