h2是一个非常小巧的数据库,可嵌入程序运行
通过bin的h2.bat运行,启动了数据库服务及用以访问的页面,该页面出访问h2数据库外还可访问其他数据库如mysql
安装目录下的server为将数据库服务作为windows服务启动,该启动方式启动其路径为C:\下,而h2的路径为C:\Documents and Settings\{登录用户名},所以在该方式无法访问在h2.bat启动方式下创建的数据库,
此外可通过代码启动数据库,该启动方式与通过h2启动无异
Server server = Server.createTcpServer();
server.start();
服务默认运行于9092端口,
连接url与Embedded方式相比多出tcp://localhost/
连接url不加端口号,也可以加上如jdbc:h2:tcp://localhost:9092/~/{数据库名}
jdbc:h2:tcp://localhost/~/test
jdbc:h2:tcp://localhost//data/test
不启动数据库可使用Embedded方式操作h2数据库,
Embedded方式,该模式只支持单进程访问
用户目录下
jdbc:h2:~/{数据库名}
file可加可不加:
jdbc:h2:file:~/{数据库名}
指定目录下
jdbc:h2:E:\research\workspace\H2Test\db\test
jdbc:h2:/home/test/h2/test
当前目录下
jdbc:h2:test
内存方式
jdbc:h2:mem:{数据库名} 或 jdbc:h2:~/mem:{数据库名}
jdbc:h2:mem:
前者在一个java进程中可多次使用,多次创建连接任有效, 但不能被其他进程访问,运行结束后即不存在
后者只能用一次,连接关闭即失效
jdbc:h2:tcp://localhost/mem:test2
jdbc:h2:tcp://localhost/mem:
以上使用服务方式访问,需开启服务,以上两者都连接关闭即失效
混合模式
由应用程序首先启动H2,这时对于应用来说H2工作在嵌入式模式,同时H2监听TCP某个端口,等待远程连接,这就是服务器模式,便于管理维护
jdbc:h2:~/test;AUTO_SERVER=TRUE