日期:2014-05-16  浏览次数:20332 次

H2 数据库 小结

?

转自:http://my.oschina.net/shootercn/blog/12399?


1.数据库连接的jdbc url?

h2分嵌入模式和服务模式,根据不同的模式和情况。连接数据库jdbc url的写法不同?
连接内嵌模式的数据库?
"jdbc:h2:file:D:/test"? 连接自定目录下的指定数据库?
"jdbc:h2:~/test" 连接默认目录下的指定数据库?
连接内存模式的数据库?
jdbc:h2:mem:test?
连接server模式的数据库?
jdbc:h2:tcp://localhost/~/test?
ssl连接数据库?
jdbc:h2:ssl://localhost/~/test?
连接压缩文件内的数据库?
jdbc:h2:zip:D:/test.zip!/test?

2.h2自带的连接池?
JdbcConnectionPool cp = JdbcConnectionPool.create(url,username,password);?
通过连接池获取连接?
Connection conn = cp.getConnection();?
note:?
默认连接池是初始10个连接?
3.嵌入模式数据库管理?
通过代码启动数据库服务?
Server server = Server.createTcpServer();?
server.start();?
关闭数据库服务?
server.stop();?
.数据库注销?
server.shutdown();?

4. 通过h2自带的方法跟cvs文件读写数据?
1.通过代码读取csv的数据?
ResultSet rs = Csv.getInstance().read(fileName, null, null);?
ResultSetMetaData meta = rs.getMetaData();?

while (rs.next()) {?
for (int i = 0; i < meta.getColumnCount(); i++) {?
System.out.println(meta.getColumnLabel(i + 1) + ":"?
+ rs.getString(i + 1));?
}?

System.out.println();?
}?

rs.close();?

通过代码写csv数据?
SimpleResultSet rs = new SimpleResultSet();?
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 * FROM CSVREAD('d:/test.csv');?

CSVWRITE()实现写csv文件?
例:CALL CSVWRITE('d:/test.csv', 'SELECT * FROM TEST');?

5.H2数据库备份?
备份文件在服务器运行目录?
1.备份sql脚本?
运行?
java -cp h2*.jar org.h2.tools.Script -url jdbc:h2:~/test -user sa -script test.zip -options compression zip?

2.备份数据库文件?
方法1:进入h2 shell 命令行模式?
java -cp h2*.jar org.h2.tools.Shell?

方法2:在shell命令行环境下执行备份命令(也可以在web直接调用)?
BACKUP TO 'backup.zip'