目录
H2数据库介绍
SpringBoot版本:SpringBoot 2.1.12.RELEASE
快速集成H2,maven依赖
快速集成H2,数据源及关键参数配置
spring.datasource.schema参数(建表SQL脚本)
spring.datasource.data参数(更新、插入SQL脚本)
项目集成H2启动执行SQL中文乱码问题处理(仅供参考)
控制台可视化访问H2数据库
H2数据库性能及功能说明
H2数据库介绍
H2是一个嵌入式的内存数据库,非常适合开发和测试环境。H2 Console最大的优势是其便捷性和直观性。不需额外软件,开发者可直接通过浏览器进行数据库操作,快速验证数据和设计。
H2数据库是一款以 Java编写的轻量级关系型数据库。由于其小巧、灵活并且易于集成,H2经常被用作开发和测试环境中的便利数据库解决方案。除此之外,H2也适合作为生产环境中的嵌入式数据库。它不仅支持标准的SQL,还兼容JDBC API,既可以以嵌入式的形式运行,也可以作为服务器模式运行。
H2数据库的突出优势在于其轻量级和高性能。作为一款Java编写的数据库,H2能够无缝集成到任何Java开发的应用中,免去了繁琐的安装和配置过程。同时,H2通过支持多种运行模式和提供丰富的SQL功能,实现了卓越的数据管理能力。 然而,相较于传统的企业级数据库,H2在数据持久化、高并发处理和数据安全性等方面仍显示出一定的局限性。例如,对于需求巨大、数据量庞大和并发请求繁多的大型企业应用,H2可能不是主数据库的理想选择。
H2内存数据库管理工具下载:H2数据库管理工具https://www.h2database.com/html/download.html
SpringBoot版本:SpringBoot 2.1.12.RELEASE
<properties>
<spring-boot.version>2.1.12.RELEASE</spring-boot.version>
</properties><dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement><dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency></dependencies>
快速集成H2,maven依赖
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
快速集成H2,数据源及关键参数配置
#web应用访问端口
server.port=8080
#相对路径,相对工程目录,.代表的就是当前工程目录,test是db文件名(可自定义)
spring.datasource.url=jdbc:h2:file:./test
#绝对路径,用户目录。在Window操作系统下,”~”这个符号代表的就是当前登录到操作系统的用户对应的用户目录,test是db文件名(可自定义)
#spring.datasource.url=jdbc:h2:file:~/test
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.driver-class-name=org.h2.Driver#开启h2控制台功能和访问地址。
spring.h2.console.enabled=true
# 管理端访问入口默认就是h2-console,可以改,如test-h2-console
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true#sql脚本编码格式
spring.datasource.sql-script-encoding=UTF-8
#建表sql语句脚本
spring.datasource.schema=classpath:acs-schema.sql
#插入数据的sql脚本,也可以写删除数据的sql里面(重置数据重新插入数据)
spring.datasource.data=classpath:acs-data.sql
spring.datasource.schema参数(建表SQL脚本)
CREATE TABLE IF NOT EXISTS `user` (
`id` varchar(32) NOT NULL,
`username` varchar(64) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`realname` varchar(512) DEFAULT NULL,
`create_date` datetime DEFAULT NULL,
`status` varchar(16) DEFAULT NULL,
`is_admin` varchar(8) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);
spring.datasource.data参数(更新、插入SQL脚本)
DELETE FROM `user`;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('402815817fd8a5c8017fd8a5c8ba0000', 'admin', '795eaf5e5555bbe8d8887f67fa91ccc2', '系统管理员',, '2022-03-30 10:26:58', '0', '1');
INSERT INTO `user` VALUES ('8a8080898ebcd224018ebcd224ff0000', 'test', '795eaf5e5555bbe8d8887f67fa91ccc2', '测试员',, '2024-04-08 16:27:52', '0', '0');
项目集成H2启动执行SQL中文乱码问题处理(仅供参考)
第一步:设置sql脚本编码格式为UTF-8
spring.datasource.sql-script-encoding=UTF-8
如果配置spring.datasource.sql-script-encoding=UTF-8后执行sql仍旧乱码,可以检查编译后的sql脚本文件编码格式是否正常(检查脚本里面中文内容是否乱码)。考虑第二步的配置,解决编译的配置文件乱码问题
第二步:设置maven插件,配置文件编译后的编码格式
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin>
控制台可视化访问H2数据库
(1)访问端口是web应用访问端口:server.port参数,如8080
(2)访问路径是h2配置的访问路径:spring.h2.console.path参数,如h2-console
(3)完整访问路径:http://localhost:8080/h2-console
H2数据库性能及功能说明
(1)应用场景:
H2是一个轻量级的数据库,适合在小型应用或者开发环境中使用。H2数据库支持内存模式,数据不被持久化,适合特殊使用场景(例如:快速原型开发,测试,高性能操作,只读数据库)。
(2)功能:
H2是一个全功能的关系数据库管理系统,支持SQL,并且可以嵌入到Java应用程序中或者作为数据库服务器使用。它支持预定义的数据类型(如浮点数或日期),支持二级索引,并且支持Java存储过程和用户定义的函数。然而,它不支持XML处理,没有分区方法,也不提供用户定义的Map/Reduce方法。
(3)易用性:
H2得分为8.0/10。H2适合运行应用测试,并且可以轻松地替换实际生产环境中使用的数据库解决方案。然而,如果预计应用程序将被大量用户使用或者应用程序较为复杂,则更适合使用MySQL。