SpringBoot 集成H2数据库,启动执行sql, 中文乱码

14 篇文章 0 订阅
5 篇文章 0 订阅

 目录

 

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数据库管理工具icon-default.png?t=N7T8https://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。

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值