h2数据库是常用的开源数据库,与HSQLDB类似,十分适合作为嵌入式数据库使用,其他的数据库大部分都需要安装独立的客户端和服务器端
h2的优势:
(1)h2采用纯java编写,因此不受平台的限制
(2)h2只有一个jar文件,十分适合作为嵌入式数据库使用
(3)h2提供了一个十分方便的web控制台用于操作和管理数据库内容。
下面介绍下h2数据库的简单使用
创建项目的时候,在数据库选项里直接勾选h2选项,如果是二次项目,在pom文件里添加以下依赖
com.h2database
h2
runtime
在 application.properties
文件(或者 applocation.yml
文件)对数据库进行连接配置
1 spring.datasource.url = jdbc:h2:file:~/.h2/testdb //配置h2数据库连接地址
2 spring.datasource.driverClassName =org.h2.Driver //配置JDBC Driver
3 spring.datasource.username = sa //配置数据库用户名
4 spring.datasource.password = //配置数据库密码
完成依赖配置和连接配置以后,就可以在项目里使用h2数据库了,Spring会自动完成Datasource的注入,之后无论是用jpa还是mybatis都可以
如果需要在程序启动时对数据库进行初始化操作,在 application.peoperties
或yml文件里对数据库进行配置
1 spring.datasource.schema=classpath:db/schema.sql //进行该配置后,每次启动程序,程序都会运行
2 resources/db/schema.sql //sql文件,对数据库的结构进行操作。xml文件也行
3 spring.datasource.data=classpath:db/data.sql //进行该配置后,每次启动程序,程序都会运行
4 resources/db/data.sql //sql文件,对数据库的数据操作。xml文件也行
这个配置十分适合开发环境,最好把数据库结构的构建sql放在 resources/db/schema.sql
,数据sql放在 resources/db/data.sql
中,这样每次
重启项目都可以得到一个新的数据库,这样就不需要每次为了测试而修改数据中的内容了。
h2 web consloe是一个数据库GUI管理应用,和phpMyAdmin类似,程序运行时,会自动启动h2 web consloe,当然也可以进行如下的配置:
1 spring.h2.console.settings.web-allow-others=true //进行该配置后,h2 web consloe就可以在远程访问了。否则只能在本机访问。
2 spring.h2.console.path=/h2-console //进行该配置,你就可以通过YOUR_URL/h2-console访问h2 web consloe。YOUR_URL是你程序的访问URl。
3 spring.h2.console.enabled=true //进行该配置,程序开启时就会启动h2 web consloe。当然这是默认的,如果你不想在启动程序时启动h2 web consloe,那么就设置为false。
配置以后,在浏览器输入 http://localhost:8080/h2-console
然后输入用户名和密码,选择好合适的语言,就可以进入数据库管理应用啦
在resource文件下新建包 changelog
,包里包含三个xml文件: changelog.xml
, data.xml
, init.xml
其中 changelog.xml
写的是数据库表的结构 , data.xml
文件里写的是数据库表的初始化数据 init.xml
是初始化加载的xml文件,包含前两个xml文件的路径
init.xml
文件:
2
6
7
8
changelog.xml
文件:
1
2
7
8
9
10 init schema
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
data.xml
文件:
1
2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21