
执行如下命令读取该Profile,初始化
mvn antrun:run -Prefresh-db
(2)、在Spring中初始化
Spring Profile和maven profile一样,也可以模拟不同的研发环境。在Spirng中可以通过jdbc:initialize-database初始化,顶配实例如下

<beans profile="test"> <context:property-placeholder ignore-resource-not-found="true" location="classpath*:/application.properties, classpath*:/application.test.properties" /> <!-- Spring Simple连接池 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> <property name="driverClass" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 初始化数据表结构 --> <jdbc:initialize-database data-source="dataSource" ignore-failures="ALL"> <jdbc:script location="classpath:sql/h2/schema.sql" /> <jdbc:script location="classpath:data/h2/import-data.sql" encoding="UTF-8"/> </jdbc:initialize-database> </beans>

四、sql语句图1、SELECT

2、INSERT

3、UPDATE

4、DELETE

5、BACKUP

6、EXPLAIN

7、MERGE

8、RUNSCRIPT
运行sql脚本文档

9、SCRIPT
按照创建sql脚本

10、SHOW

11、ALTER INDEX RENAME

12、ALTER SCHEMA RENAME

13、ALTER SEQUENCE

14、ALTER TABLE
下降列

下降约束

修改列


删除列

删除序列

15、ALTER USER
修改用户名

修改用户密码

16、ALTER VIEW

17、COMMENT

18、CREATE CONSTANT

19、CREATE INDEX

20、CREATE ROLE

21、CREATE SCHEMA

22、CREATE SEQUENCE

23、CREATE TABLE

24、CREATE TRIGGER

25、CREATE USER

26、CREATE VIEW

27、DROP

28、GRANT RIGHT授权

给schema授权

复制角色的权限

29、REVOKE RIGHT移除授权

移除角色具备的权限

30、ROLLBACK
从某个还原点(savepoint)回滚


回滚事务

创建savepoint

H2支持如下数据类型

1、INT Type

值范围:-2147483648-2147483647
2、BOOLEAN Type

可选值:TRUE和FALSE
3、TINYINT Type
值范围:-128-127
4、SMALLINT Type

值范围: -32768 to 32767
5、BIGINT Type

值范围:-9223372036854775808-9223372036854775807
6、IDENTITY Type
自动增长值
值范围:-9223372036854775808-9223372036854775807
7、DECIMAL Type

示例:DECIMAL(20, 2)
8、DOUBLE Type

9、REAL Type
浮点类型
10、TIME Type
时间类型,文档为:hh:mm:ss
11、DATE Type
日期类型,文档为:yyyy-MM-dd
12、TIMESTAMP Type

时间戳类型,文档为:yyyy-MM-dd hh:mm:ss[.nnnnnnnnn]
可映射为java对象:java.sql.Timestamp/java.util.Date
13、BINARY Type

存储字节流,大数据建议使用BLOB类型存储
示例:BINARY(1000)
14、OTHER Type
用来储存序列化的java对象

15、VARCHAR Type

存储字符串,大文本数据建议使用CLOB类型存储
示例:VARCHAR(255)
16、VARCHAR_IGNORECASE Type
与VARCHAR类似,所以不混淆大小写
17、CHAR Type

存储unicode字符串,与VARCHAR的差异是,车身的括号不会被存储
18、BLOB Type

存储大容量二进制流,最大存储2G数据
映射java对象类型为:java.sql.Blob/java.io.InputStream
19、CLOB Type

用来储存大容量的文本数据
映射java对象类型为:java.sql.Clob/java.io.Reader
20、UUID Type
存储通用唯一识别码,挤占128bit
21、ARRAY Type
字段类型,使用一个值列表(1,2)或PreparedStatement.setObject(.., new Object[] {..})存储值
映射java对象类型为:java.lang.Object[]
22、GEOMETRY Type
存储空间几何对象,一般存储WKT格式的空间数据
H2支持两台服务器运行两个成为集群,两个互为备份,所以一个服务器失效,另一个服务器仍然可以工作。另外只有服务模式支持集群配置。
H2可以通过CreateCluster工具创建集群,示例步骤如下(在在一台服务器上模拟两个组成集群):
1、创建目录
创建两个服务器工作的目录
# mkdir server1 # mkdir server2
2、启动tcp服务
执行如下命令分别在9101、9102端口启动两个使用tcp服务模式的
java org.h2.tools.Server-tcp -tcpPort 9101-baseDir server1
java org.h2.tools.Server-tcp -tcpPort 9102 -baseDir server2
3、使用CreateCluster工具创建集群
java org.h2.tools.CreateCluster -urlSource jdbc:h2:tcp://localhost:9101/~/test -urlTarget jdbc:h2:tcp://localhost:9102/~/test -user sa -serverList localhost:9101,localhost:9102
因为两个不存在h2 内存,该指令将会自动创建。如果一个失效,可以先删除坏的文件,重新启动,然后再次运行CreateCluster工具
4、打通
现在可以使用如下连接字符串连接集群
jdbc:h2:tcp://localhost:9101,localhost:9102/~/test
5、监控集群运行状况
可以使用如下命令察看配置的集群服务器是否都在运行
SELECT VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME='CLUSTER'
6、受限
H2的集群并不支持针对事务的负载均衡,但是好多操作会使两个产生不一致的结果,执行如下操作时请谨慎:
RANDOM_UUID(), SECURE_RAND(), SESSION_ID(), MEMORY_FREE(), MEMORY_USED(), CSVREAD(), CSVWRITE(), RAND()
自动增长列和标识列不支持集群,当插入数据时,序列值需要手动创建
不支持SET AUTOCOMMIT FALSE语句,所以需要增设作为不自动填写,可以执行方式Connection.setAutoCommit(false)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-118453-2.html
气死我了