yixiaoping的专栏

H2数据库介绍

常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。H2的优势:1、h2采用纯Java编写,因此不受平台的限制。2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。3、性能和功能的优势

H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。

H2和各数据库特征比较。

准备工作

1、h2-2011-04-04.zip 下载地址:2、解压文件,这里以%H2_HOME%表示为解压的文件目录。运行%H2_HOME%\bin\h2.bat 将会自动打开下面网址。(请确认是否安装了jdk,并设置了JAVA_HOME环境变量):8082/login.jsp?jsessionid=244e36a683f97f0d4f3b000f33530ed1

3、点击 connect ,登录。

4、执行上图中红色部分sql语句,成功创建test表。

因为没有指定数据库文件位置,会自动输出到输出到C:\Users\Administrator下。

H2文件结构

%H2_HOME%-h2 -bin h2-1.3.154.jar //jar包 h2.bat //Windows控制台启动脚本 h2.sh //Linux控制台启动脚本 h2w.bat //Windows控制台启动脚本(不带黑屏窗口) +docs 帮助文档 +service //通过wrapper包装成服务。 +src //源代码 build.bat windows构建脚本 build.sh linux构建脚本

H2的使用支持Embedded,server和in-memory模式以及内存模式。Embedded模式

1、新建java project工程 H2Test。

2、%H2_HOME%\bin\h2-1.3.154.jar 复制到 \H2Test\lib下,并加入工程引用。3、新建Generic H2 (Embedded)数据库,指定:JDBCURL:jdbc:h2:E:\research\workspace\H2Test\db\test,然后执行上面的test sql语句,来创建一个test表。

4、新建 TestH2类 主要代码

public static void main(String[] a) throws Exception { Class.forName("org.h2.Driver"); Connection conn = DriverManager. getConnection("jdbc:h2:E:\\research\\workspace\\H2Test\\db\\test", "sa", ""); // add application code here Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM TEST "); while(rs.next()) { System.out.println(rs.getInt("ID")+","+rs.getString("NAME")); } conn.close();}

控制台打印出:1,Hi

server模式

1、直接将jdbc url 改为:jdbc:h2:tcp://localhost/~/test 就行了。因为我们在上面第一步的时候已经在C:\Users\Administrator创建了test数据库。你也可以再创建新的数据库,默认都是保存在C:\Users\Administrator下的。注意:你必须启动服务:%H2_HOME%\bin\h2.bat 或者 以服务模式启动:%H2_HOME%\service\0_run_server_debug.bat ,里面有好几个脚本把H2部署为服务模式。每次机器启动后自动启动H2服务。2、新建 TestServerH2类 主要代码

public static void main(String[] a) throws Exception { Class.forName("org.h2.Driver"); Connection conn = DriverManager. getConnection("jdbc:h2:tcp://localhost/~/test", "sa", ""); // add application code here Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM TEST "); while(rs.next()) { System.out.println(rs.getInt("ID")+","+rs.getString("NAME")); } conn.close();}

运行的结果和上面一样。

内存模式(数据只保存在内存中)

1、新建 TestMemH2类 主要代码

人生就是要感受美丽的善良的,丑恶的病态的。

yixiaoping的专栏

相关文章:

你感兴趣的文章:

标签云: