您好,欢迎访问三七文档
H2数据库使用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下载地址:、解压文件,这里以%H2_HOME%表示为解压的文件目录。运行%H2_HOME%/bin/h2.bat将会自动打开下面网址。(请确认是否安装了jdk,并设置了JAVA_HOME环境变量)=244e36a683f97f0d4f3b000f33530ed13、点击connect,登录。4、执行上图中红色部分sql语句,成功创建test表。因为没有指定数据库文件位置,会自动输出到输出到C:/Users/Administrator下。H2文件结构%H2_HOME%-h2-binh2-1.3.154.jar//jar包h2.bat//Windows控制台启动脚本h2.sh//Linux控制台启动脚本h2w.bat//Windows控制台启动脚本(不带黑屏窗口)+docs帮助文档+service//通过wrapper包装成服务。+src//源代码build.batwindows构建脚本build.shlinux构建脚本H2的使用支持Embedded,server和in-memory模式以及内存模式。Embedded模式1、新建javaproject工程H2Test。2、%H2_HOME%/bin/h2-1.3.154.jar复制到/H2Test/lib下,并加入工程引用。3、新建GenericH2(Embedded)数据库,指定:JDBCURL:jdbc:h2:E:/research/workspace/H2Test/db/test,然后执行上面的testsql语句,来创建一个test表。4、新建TestH2类主要代码publicstaticvoidmain(String[]a)throwsException{Class.forName(“org.h2.Driver”);Connectionconn=DriverManager.getConnection(“jdbc:h2:E://research//workspace//H2Test//db//test”,“sa”,“”);//addapplicationcodehereStatementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(“SELECT*FROMTEST“);while(rs.next()){System.out.println(rs.getInt(“ID”)+”,”+rs.getString(“NAME”));}conn.close();}控制台打印出:1,Hiserver模式1、直接将jdbcurl改为: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类主要代码publicstaticvoidmain(String[]a)throwsException{Class.forName(“org.h2.Driver”);Connectionconn=DriverManager.getConnection(“jdbc:h2:tcp://localhost/~/test”,“sa”,“”);//addapplicationcodehereStatementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(“SELECT*FROMTEST“);while(rs.next()){System.out.println(rs.getInt(“ID”)+”,”+rs.getString(“NAME”));}conn.close();}运行的结果和上面一样。内存模式(数据只保存在内存中)1、新建TestMemH2类主要代码publicstaticvoidmain(String[]a)throwsException{Class.forName(“org.h2.Driver”);Connectionconn=DriverManager.getConnection(“jdbc:h2:tcp://localhost/mem:test2″,“sa”,“”);//addapplicationcodehereStatementstmt=conn.createStatement();stmt.executeUpdate(“CREATETABLETEST_MEM(IDINTPRIMARYKEY,NAMEVARCHAR(255));”);stmt.executeUpdate(“INSERTINTOTEST_MEMVALUES(1,‘Hello_Mem’);”);ResultSetrs=stmt.executeQuery(“SELECT*FROMTEST_MEM”);while(rs.next()){System.out.println(rs.getInt(“ID”)+”,”+rs.getString(“NAME”));}conn.close();}控制台打印出:1,Hello_Mem2、上面的URL改为jdbc:h2:~/mem:test也是可以的。如果是localhost必须启动服务。1.数据库连接的jdbcurlh2分嵌入模式和服务模式,根据不同的模式和情况。连接数据库jdbcurl的写法不同连接内嵌模式的数据库jdbc:h2:file:D:/test连接自定目录下的指定数据库jdbc:h2:~/test连接默认目录下的指定数据库连接内存模式的数据库jdbc:h2:mem:test连接server模式的数据库jdbc:h2:tcp://localhost/~/testssl连接数据库jdbc:h2:ssl://localhost/~/test连接压缩文件内的数据库jdbc:h2:zip:D:/test.zip!/test2.h2自带的连接池JdbcConnectionPoolcp=JdbcConnectionPool.create(url,username,password);通过连接池获取连接Connectionconn=cp.getConnection();note:默认连接池是初始10个连接3.嵌入模式数据库管理通过代码启动数据库服务Serverserver=Server.createTcpServer();server.start();关闭数据库服务server.stop();.数据库注销server.shutdown();4.通过h2自带的方法跟cvs文件读写数据1.通过代码读取csv的数据ResultSetrs=Csv.getInstance().read(fileName,null,null);ResultSetMetaDatameta=rs.getMetaData();while(rs.next()){for(inti=0;imeta.getColumnCount();i++){System.out.println(meta.getColumnLabel(i+1)+:+rs.getString(i+1));}System.out.println();}rs.close();通过代码写csv数据SimpleResultSetrs=newSimpleResultSet();rs.addColumn(name,Types.VARCHAR,255,0);rs.addColumn(email,Types.VARCHAR,255,0);rs.addRow(陈盈,yingchen@midea.com.cn);rs.addRow(邹嘉欣,zoujx@midea.com.cn);Csv.getInstance().write(fileName,rs,null);2.使用h2自带cvs函数通过sql语句实现csvread()实现读csv文件例:SELECT*FROMCSVREAD('d:/test.csv');CSVWRITE()实现写csv文件例:CALLCSVWRITE('d:/test.csv','SELECT*FROMTEST');3.根据cvs文件创建h2数据库表CREATETABLETESTASSELECT*FROMCSVREAD('test.csv');//csv文件数据创建test表CREATETABLETEST(IDINTPRIMARYKEY,NAMEVARCHAR(255))ASSELECT*FROMCSVREAD('test.csv');/创建test表,csv文件相应的列插入到test表相应的字段5.H2数据库备份1.备份sql脚本运行java-cph2*.jarorg.h2.tools.Script-urljdbc:h2:~/test-usersa-scripttest.zip-optionscompressionzip2.备份数据库文件方法1:进入h2shell命令行模式java-cph2*.jarorg.h2.tools.Shell方法2:在shell命令行环境下执行备份命令BACKUPTO'backup.zip'
本文标题:H2数据库管理使用
链接地址:https://www.777doc.com/doc-5666017 .html