mysql h2_h2初始化数据库
H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。
一、引入Maven依赖
在maven中定义H2数据库的版本属性
1.3.172
添加H2依赖
com.h2database
h2
${h2.version}
test
二、运行方式
1、在内存中运行
数据库只在内存中运行,关闭连接后数据库将被清空,适合测试环境
连接字符串:
jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1
如果不指定DBName,则以私有方式启动,只允许一个连接
2、嵌入式
数据库持久化存储为单个文件
连接字符串:
jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE
~/.h2/DBName表示数据库文件的存储位置,如果第一次连接则会自动创建数据库
3、服务模式
H2支持三种服务模式:
1.web server:此种运行方式支持使用浏览器访问H2 Console
2.TCP server:支持客户端/服务器端的连接方式
3.PG server:支持PostgreSQL客户端
启动tcp服务连接字符串示例:
jdbc:h2:tcp://localhost/~/test 使用用户主目录
jdbc:h2:tcp://localhost//data/test 使用绝对路径
4、连接字符串参数
1.DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库
2.MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
3.AUTO_RECONNECT=TRUE:连接丢失后自动重新连接
4.AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式
5.TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG
6.SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M
5、启动服务模式,打开H2 Console web页面
启动服务,在命令行中执行
java -cp h2*.jar org.h2.tools.Server
执行如下命令,获取选项列表及默认值
java -cp h2*.jar org.h2.tools.Server -?
常见的选项如下:
-web:启动支持H2 Console的服务
-webPort :服务启动端口,默认为8082
-browser:启动H2 Console web管理页面
-tcp:使用TCP server模式启动
-pg:使用PG server模式启动
此外,使用maven也可以启动H2服务
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
1.0.0
1.0.0
groupid
h2-console
H2 Console
pom
1.3.172
com.h2database
h2
${h2.version}
runtime
org.codehaus.mojo
exec-maven-plugin
java
org.h2.tools.Server
-web
-webPort
8090
-browser
在命令行中执行如下命令启动H2 Console
mvn exec:java
或者建立一个bat文件
@echo off
call mvn exec:java
pause
此操作相当于执行了如下命令:
java -jar h2-1.3.168.jar -web -webPort 8090 -browser
三、应用程序配置
1、Properties配置
java应用程序关于数据库的Properties配置文件示例如下:
#h2 database settings
jdbc.driver=org.h2.Driver
jdbc.url=jdbc:h2:file:~/.h2/quickstart;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1
jdbc.username=sa
jdbc.password=
#connection pool settings
jdbc.pool.maxIdle=5
jdbc.pool.maxActive=40
2、初始化数据库
(1)、在Maven中初始化数据库
可以创建一个Profile,专门用于初始化数据库。在maven中可以通过maven-antrun-plugin执行ant任务,在ant任务中使用sql标签可以执行sql脚本文件,配置示例如下:
refresh-db
org.apache.maven.plugins
maven-antrun-plugin
password=”{jdbc.password}” οnerrοr=”continue” encoding=”{project.build.sourceEncoding}”>
执行如下命令调用该Profile,初始化数据库
mvn antrun:run -Prefresh-db
(2)、在Spring中初始化数据库
Spring Profile和maven profile一样,也可以模拟不同的开发环境。在Spirng中可以通过jdbc:initialize-database初始化数据库,配置示例如下
location=”classpath*:/application.properties,
classpath*:/application.test.properties” />
参靠:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183630.html原文链接:https://javaforall.cn
相关文章
- MySQL 数据库实现转移操作(mysql数据库转移)
- 设置MySQL数据表名称(mysql数据表名称)
- 掌握MySQL过程语法,实现数据库管理的高效率(mysql过程语法)
- 使用Python编程连接MySQL数据库(python连mysql)
- MySQL的安全可靠的闪回方案(mysql闪回方案)
- 行Mac 使用MySQL命令行指令管理数据库(macmysql命令)
- MySQL数据库技术备案(mysql温备)
- 怎么办解决MySQL单表大小问题的方法(mysql单表过大)
- MySQL无法删除记录:一场数据库灾难(mysql无法删除记录)
- 库MySQL的二进制数据库:功能与性能之旅(mysql二进制数据)
- MySQL事件定时任务详解,简单高效的数据库定时操作。(mysql事件定时)
- MySQL数据库中如何使用锁表控制访问?(锁表mysql)
- 使用 MySQL 查询表获取数据(mysql查询表数据)
- MySQL单机数据库部署及使用方法(MySQL本地单机数据库)
- MySQL中调整字段值的技巧(mysql设置字段值)
- MySQL数据库如何实现数据回滚(mysql数据库如何回滚)
- MySQL授权指南:如何优雅地给权限(mysql如何授权)
- MySQL数据库备份:保障数据安全(mysql数据库备份文件)
- MySQL面试题大全精选SQL技巧考察,必备职场技能(mysql中sql面试题)
- 使用mysql中的pstmt提高数据库操作效率(mysql中pstmt)
- Mysql中DB的重要性与操作技巧简介(mysql中db)
- 深入MySQL探讨0的神秘世界(mysql中 0)
- 深度解析如何进行 MySQL 两表数据对比(mysql两表数据对比)
- 在cmd无法连接MySQL服务器(cmd里打不开mysql)
- 字节类型MySQL中的实现方式(byte对应mysql)
- 如何使用CMD命令卸载MySQL(cmd怎么卸载mysql)
- MySQL如何判断值25字教你写法(mysql中判断值的写法)
- 无需安装MySQL,轻松上手使用数据库管理的技巧(mysql不安装怎么用)
- MySQL插入数据时遇到字母无法操作看这篇解决方案(mysql不能插入字母)