中文代码之Spring Boot集成H2内存数据库

简介: 演示用Spring Boot集成H2内存数据库, 使用中文代码. Demostrate naming in Chinese in integrating H2 in-memory database to a demo based on Spring Boot.

续前文: 中文代码之Spring Boot添加基本日志, 源码库地址相同.

鉴于此项目中的数据总量不大(即使万条词条也在1MB之内), 当前选择轻量级而且配置简单易于部署的H2内存数据库比较合理. 此文仅演示实现H2的集成, 还未修改服务本身功能.

相关commit在: 集成H2数据库 · program-in-chinese/programming_term_dictionary@dc29be7

应用.java

public class 应用 implements CommandLineRunner {

  private static final Logger 笔录 = LoggerFactory.getLogger(应用.class);

  private final 词库接口 词库;

  @Autowired
  public 应用(词库接口 词库) {
    this.词库 = 词库;
  }
...
  @Override
  public void run(String ...参数) throws Exception {
    词条 词条1 = new 词条(1L, "集合");
    词条 词条2 = new 词条(2L, "字典");
    
    笔录.info("添加H2数据");
    词库.save(词条1);
    词库.save(词条2);
    笔录.info("数据条数: {}", 词库.count());
  }

词条.java:

@Entity
public class 词条 {

  @Id
  private long id;
  private String 中文术语;

  public 词条() {
  }
  ...
}

词库接口.java

@Repository
public interface 词库接口 extends JpaRepository<词条, Long> {

}

application.yml

# 打开H2控制台
spring:
  h2:
    console:
      enabled: true
  datasource:
    url: jdbc:h2:mem:testdb;MODE=Oracle;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

pom.xml添加依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
                <scope>runtime</scope>
        </dependency>

启动服务后, 访问http://localhost:8080/h2-console并在JDBC URL中输入application.yml中配置的数据库路径(datasource:url):
2018_08_20_h2_connect_spring_boot

可以看到启动时添加的两个词条数据已在数据库中:
2018_08_20_h2_integration_with_spring_boot

下面需要修改数据库设计, 使其包括"英文"和"中文"两个列, 并实现H2数据库查询, 代替现在代码中的Map结构. 另外, 欠了的测试要还.

参考:

Using H2 In-memory Database with Spring Boot

相关文章
|
12月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
1252 3
|
12月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
1306 4
|
机器学习/深度学习 编解码 计算机视觉
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
223 2
|
11月前
|
人工智能 监控 Java
零代码改造 + 全链路追踪!Spring AI 最新可观测性详细解读
Spring AI Alibaba 通过集成 OpenTelemetry 实现可观测性,支持框架原生和无侵入探针两种方式。原生方案依赖 Micrometer 自动埋点,适用于快速接入;无侵入探针基于 LoongSuite 商业版,无需修改代码即可采集标准 OTLP 数据,解决了原生方案扩展性差、调用链易断链等问题。未来将开源无侵入探针方案,整合至 AgentScope Studio,并进一步增强多 Agent 场景下的观测能力。
3367 101
|
编解码 算法 自动驾驶
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
747 125
|
11月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
12月前
|
机器学习/深度学习 数据采集 传感器
基于多尺度集成极限学习机回归(Matlab代码实现)
基于多尺度集成极限学习机回归(Matlab代码实现)
241 1
|
12月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1920 5
|
12月前
|
安全 IDE Java
Spring 的@FieldDefaults和@Data:Lombok 注解以实现更简洁的代码
本文介绍了如何在 Spring 应用程序中使用 Project Lombok 的 `@Data` 和 `@FieldDefaults` 注解来减少样板代码,提升代码可读性和可维护性,并探讨了其适用场景与限制。
379 0
Spring 的@FieldDefaults和@Data:Lombok 注解以实现更简洁的代码
|
机器学习/深度学习 运维 算法
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
291 1