JDBC连接H2 数据库(转http:conanca.javaeye.comblog654679)

    技术2025-12-16  10

    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自带的数据库连接池

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

    看一下用法:

    Java代码 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();       }   }   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果然是麻雀虽小,五脏俱全啊

     

    最新回复(0)