启动和使用H2管理系统设置H2管理系统通过JDBC连接到数据库创建一个新的数据库使用服务器模式使用Hibernate使用TopLink和Glassfish使用EclipseLink在WEB应用中使用数据库CSV(逗号分隔文件)的支持升级,备份,和恢复命令行工具使用OpenOffice基础框架使用/JNLP启动JAVAWEB使用连接池全文检索用户自定义变量日期和时间使用Spring使用和启动H2管理系统H2管理系统让你能够通过一个浏览器对H2的SQL数据库进行管理操作。H2管理系统不仅可以连接H2数据库,也可以连接其他支持JDBC接口的数据库。这是一个B/C/S应用,在服务器和浏览器上都要运行H2的管理程序。根据平台不同,H2管理系统支持多种启动应用的方式。在windows上有两种方式启动H2管理系统方式一:单击[开始],[程序],[H2],和[H2Console(CommandLine)]。当使用SUNJDK1.5时,一个标题为'H2Console'的窗口将弹出。当使用SUNJDK1.6时,一个数据库图标将被加入WINDOWS到系统托盘。如果既无窗口弹出也没有图标加入到系统托盘,很可能是你的JDK没有正确安装(如果确认自己的JDK安装正确,可以尝试用另外一种方式启动控制台)。另外一个浏览器窗口将被打开,指向的URL是,是H2管理系统的登录页面。方式二:打开文件浏览器,切换目录到h2/bin,双击运行h2.bat。一个控制台窗口将弹出,如果有问题,将有错误信息在这个窗口里显示。一个浏览器窗口将被打开,指向的URL是,是H2管理系统的登录页面。其他操作系统启动H2管理系统方式一:双击h2*.jar文件,如果.jar文件能正确的被java打开。方式二:打开一个控制台窗口,切换目录到h2/bin,执行命令:java-cph2*.jarorg.h2.tools.Server防火墙在你启动服务时,如果你安装了防护墙,你可能会收到一个防护墙的安全警告。如果不需要其他计算机访问你这台计算机上的H2数据库,你可以让防火墙阻塞H2对外服务的端口,但是本地计算机仍可以访问这些端口。当你需要其他计算机也能访问这台计算机的H2数据库时,你需要让防火墙开放H2对外服务的端口。有报告显示使用卡巴斯基7.0的防火墙时,使用IP地址访问本地的H2时,速度非常的缓慢,替代的方案是使用'localhost'代替IP地址来访问。一个简单的防火墙已经集成到H2的服务器中,其他的计算机缺省状态下不能连接到服务器,如果需要其他计算机能连接到H2服务器,到'Preferences'(偏好),选择'Allowconnectionsfromothercomputers'(允许从其他计算连接)即可。JAVA测试打开一个命令行窗口,输入下面的命令,检测JAVA的版本:java-version如果你得到错误的信息,你可能未安装JDK,或是需要将JAVA的可执行文件路径加入到环境变量PATH中。错误信息'Portmaybeinuse'(端口被占用)你可能在启动一个H2控制台实例时,出现错误信息TheWebservercouldnotbestarted.Possiblecause:anotherserverisalreadyrunning....(WEB服务器不能启动,可能的原因:另外一个服务器已经在运行了)。使用不同的端口,可以在一台计算机上启动多个控制台程序,但是一般都不被这么要求。使用其他端口如果端口已经被其他应用占用,你需要使用其他端口来启动H2控制台。改变H2的控制台端口需要修改配置文件.h2.server.properties。这个文件存储在用户目录下(在Windows系统中,这个文件通常在DocumentsandSettings/username)。这个相应的入口实体是webPort.使用浏览器连接到服务器服务器启动成功后,你就可以使用WEB浏览器访问服务,浏览器需要支持JavaScript。在启动的服务器上启动浏览器,打开URL。在启动服务器之外的计算机上,你需要提供启动服务器的IP地址,如如果你在服务器上启用了SSL,URL需要使用https://开头.多个并发会话支持多个并发的浏览器会话。由于数据对象是存储在服务器上的,同时工作的会话数受限于服务器的内存。登录在登录页,你提交连接信息就可以登录到数据库。设置JDBC作为连接数据库的驱动,填入JDBCURL、用户名、密码,单击[Connect]。你能保存和恢复以前设置的信息,这些设置都存储在属性文件中。错误信息错误信息用红色标识,你能通过单击消息显示或隐藏异常的堆栈信息。附加数据库驱动通过增加JAR的本地驱动文件到环境变量来附加数据库驱动。环境变量包括H2DRIVERS和CLASSPATH,以WINDOWS为例:如要增加数据库驱动“C:\Programs\hsqldb\lib\hsqldb.jar”,设置环境变量H2DRIVERS=C:\Programs\hsqldb\lib\hsqldb.jar。多个驱动可以被设置,每个驱动之间通过;分号分隔(WINDOWS),其他系统通过:冒号分隔。在路径中空格被支持,但是这些设置不能被引用。使用H2控制台H2控制台主页面分为三个主要的部分:顶部的工具栏,左边的是对象树,右边的是查询和结果输出栏。数据库对象(如表)都被列在左边的树形上。在查询栏上输入SQL语句点击'Run‘,结果就被输出到命令行的下面。增加表名和字段名可以通过在树上点击增加表名和字段名。如果单击表,当这个查询栏是空的时候,”SELECT*FROM将被自动增加到查询栏。当输入一个表的查询时,对象树上将自动的展开这张表。例如,你输入SELECT*FROMTESTTWHERET,对象树上的表TEST将自动的展开。断开连接和停止应用断开数据库,点击工具栏上的Disconnect即可,这个时候,数据库服务仍在继续运行,等待着一个新的会话进行连接。停止服务需要右键点击系统托盘的H2图标,选择[Exit]。如果没有系统托盘的H2图标,切换到[Preferences]单击[Shutdown],在WINDOWS上在服务器启动的窗口下按[Ctrl]+[C],或者直接关闭WINDOWS上的控制台窗口。设置H2控制台H2控制台的设置信息存储在配置文件.h2.server.properties,该文件存放在你的用户目录下。在WINDOWS上,用户目录通常是C:\DocumentsandSettings\[username]。H2控制台第一次启动时将自动创建应用所需要包含的配置文件。使用JDBC连接到数据库JAVA应用要连接到数据库,首先需要加载数据库驱动,然后获得一个数据库连接,下面是一个简单的例子:importjava.sql.*;publicclassTest{publicstaticvoidmain(String[]a)throwsException{Class.forName(org.h2.Driver);Connectionconn=DriverManager.getConnection(jdbc:h2:~/test,sa,);//addapplicationcodehereconn.close();}}代码中通过Class.forName(...)来加载驱动,通过DriverManager.getConnection()来打开一个连接,驱动名为org.h2.Driver。数据库URL总是使用jdbc:h2:来标识,getConnection()的第二个参数是用户名(sa作为系统超级管理员的一个例子),第三个参数是密码,用户名是不区分大小写,但是密码是大小写区分的。创建新一个新数据库缺省情况下,如果URL指定的数据库并不存在,一个新的空的数据库将被自动的创建。创建数据库的用户自动成为这个数据库的超级管理员。自动创建新库也可以通过特殊的URL进行屏蔽,参见打开一个存在的数据库。使用服务器模式H2目前支持三种服务器模式:WEB服务器模式(H2控制台)、TCP服务器模式(C/S连接)和PG服务器模式(PostgreSQL客户端)。可以通过多种方式启动服务器模式,通常的方式是通过服务器工具。通过命令行启动服务器工具缺省设置下,输入下面命令并执行能启动服务器工具:java-cph2*.jarorg.h2.tools.Server通过下面的命令行,可以查看服务器启动命令行的参数及缺省值:java-cph2*.jarorg.h2.tools.Server-?参数允许服务器工具启动到其他端口或者只是部分启动。连接到TCP服务器要连接另一台计算机的的数据库,只能通过TCP方式进行连接,使用下面的连接驱动和数据库URL:JDBC驱动类:org.h2.Driver数据库URL:jdbc:h2:tcp://ip/~/test关于数据库URL,看数据库URL说明。在应用内部启动TCP服务在JAVA应用内部,也可以通过代码来实现TCP服务的启动和停止,例子代码如下:importorg.h2.tools.Server;...//starttheTCPServerServerserver=Server.createTcpServer(args).start();...//stoptheTCPServerserver.stop();外部程序停止TCP服务TCP服务能被另外的进程停止,通过命令行停止TCP服务的命令如下:javaorg.h2.tools.Server-tcpShutdowntcp://localhost:9092通过在程序中添加下面的代码,也可以在另外的进程中停止TCP服务:org.h2.tools.Server.shutdownTcpServer(tcp://localhost:9094);这个方法仅能停止TCP服务,如果进程内的其他服务还在运行,他们将不受影响。为了避免数据库被重新打开,在使用这个方法前,需要将所有的数据库连接都关闭。远程停止服务,需要能远程连接到这台服务器上。关闭服务器可以通过使用密码来保护(启动时也需要使用和创建的密码),命令行参数可以通过-tcpPassword来实现。使用HibernateH2数据库支持Hibernate3.1及以上的版本。你能够使用HSQLDB方言,或是H2自己的方言。注意的是,在Hibernate中包含的H2方言有BUG,针对这些BUG的补丁已经被发布。最新的Hibernate的方言版本是src/tools/org/hibernate/dialect/H2Dialect.java.txt。你能够将它改名为H2Dialect.java,直接把它包含在你的应用中即可使用。使用TopLink和Glassfish在Glassfish中使用H2,设置DatasourceClassname为org.h2.jdbcx.JdbcDataSource。可以通过图形界面进行设置[ApplicationServer]-[Resources]-[JDBC]-[ConnectionPools],或者编辑文件sun-resources.xml:修改元素jdbc-connection-pool,设置属性datasource-classname为org.h2.jdbcx.JdbcDataSource。H2数据库是兼容HSQLDB和PostgreSQL。如果要使用H2的特殊属性,需要使用H2Platform,源代码在src/tools/oracle/toplink/essentials/platform/database/DatabasePlatform.java.txt.你将这个文件拷贝到你的应用中,并将它改名为.java的文件,并修改persistence.xml:propertyname=toplink.target-databaseva