H2数据库的Spring Boot

在本快速教程中,我们将引导一个由内存H2数据库支持的简单Spring Boot应用程序。 我们将使用Spring Data JPA与我们的数据库进行交互。

项目设置:

首先,让我们使用Spring Initializr生成我们的项目模板:

单击“生成项目”链接后,将下载我们的项目文件。

现在,如果我们仔细查看生成的POM文件,将在下面添加依赖项:

 < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter</ artifactId >  </ dependency >  < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-test</ artifactId >  </ dependency >  < 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 > 

H2默认属性:

由于我们已经添加了H2数据库依赖关系,因此Spring Boot将自动配置其相关属性。 默认配置包括:

 spring.datasource.url=jdbc:h2:mem:testdb  spring.datasource.driverClassName=org.h2.Driver  spring.datasource.username=sa  spring.datasource.password=  spring.h2.console.enabled= false 

让我们通过在application.properties文件中定义这些属性来覆盖其中一些属性:

 spring.h2.console.enabled= true  spring.h2.console.path= /h2  spring.datasource.url=jdbc:h2:mem:university 

在这里,我们的数据库名称将是一所大学 。 我们还启用了H2控制台并设置了其上下文路径。

定义实体:

现在,我们将定义一个Student实体:

 @Entity  public class Student { @Id @GeneratedValue (strategy = GenerationType.AUTO) private Integer id;  private String name;     public Student(String name) { this .name = name; }  //getters, setters  public String toString() { return "{id=" + id + ", name=" + name + "}" ; }  } 

及其对应的Spring Data JPA存储库:

 @Repository  public interface StudentRepository extends CrudRepository<Student, Integer> {  } 

学生实体将以完全相同的名称映射到数据库表。 如果需要,可以使用@Table批注指定其他表名。

应用类别:

最后,让我们实现我们的UniversityApplication类:

 @SpringBootApplication  public class UniversityApplication {  public static void main(String[] args) { SpringApplication.run(UniversityApplication. class , args); }  @Bean public CommandLineRunner testApp(StudentRepository repo) { return args -> { repo.save( new Student( "James" )); repo.save( new Student( "Selena" ));  List<Student> allStudents = repo.findAll(); System.out.println( "All students in DB: " + allStudents);  Student james = repo.findById( 1 ); System.out.println( "James: " + james); }; }  } 

此类是我们Spring Boot应用程序的起点。 在这里, @SpringBootApplication注释等效于将@ ComponentScan,@ EnableAutoConfiguration@SpringConfiguration组合在一起。

我们还定义了CommandLineRunner的实例。 因此,当我们运行应用程序时,控制台日志将具有:

 UniversityApplication:All students in DB: [{id= 1 , name=James} , {id= 2 , name=Selena}]  James: {id= 1 , name=James}  ... 

请注意,在Spring Boot中, 理想情况下所有实体都应在与主应用程序类相同的包级别或更低的级别(在子包中)定义 。 如果是这样,Spring Boot将自动扫描所有这些实体。

访问H2控制台:

我们还可以在H2控制台上检查数据库条目。

为此,我们将在任何浏览器上打开URL: http:// localhost:8080 / h2并使用我们的数据库配置登录。 有了它,我们将能够在UI Console仪表板上轻松查看所有创建的表和条目。

结论:

在本教程中,我们使用单个实体引导了一个非常简单的Spring Boot应用程序。 该应用程序与H2数据库集成在一起,并使用Spring Data JPA。
我们可以轻松扩展它,以适应更广泛的应用范围。

翻译自: https://www.javacodegeeks.com/2019/09/spring-boot-with-h2-database.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集线器,交换机,路由器工作层次的区别

集线器&#xff08;Hub&#xff09;、交换机&#xff08;Switch&#xff09;与路由器&#xff08;Router&#xff09;号称是网络硬件三剑客&#xff0c;一直以来都是网络界的活跃分子&#xff0c;但让非常多初入网络之门的菜鸟恼火的是&#xff0c;它们三者不仅外观相似&#x…

什么是协议网桥?

网桥&#xff08;Bridge&#xff09;是早期的两端口二层网络设备&#xff0c;用来连接不同网段。网桥的两个端口分别有一条独立的交换信道&#xff0c;不是共享一条背板总线&#xff0c;可隔离冲突域。网桥比集线器&#xff08;Hub&#xff09;性能更好&#xff0c;集线器上各端…

网桥是怎么分类的?具体有哪些分类?

网桥也叫桥接器&#xff0c;是连接两个局域网的一种存储/转发设备&#xff0c;它能将一个大的LAN分割为多个网段&#xff0c;或将两个以上的LAN互联为一个逻辑LAN&#xff0c;使LAN上的所有用户都可访问服务器。那么&#xff0c;网桥具体是怎么分类的&#xff0c;有哪些类别呢&…

c++返回指针时候注意提防_编写干净的测试–提防魔术

c返回指针时候注意提防很难为干净的代码找到一个好的定义&#xff0c;因为我们每个人都有自己的单词clean的定义。 但是&#xff0c;有一个似乎是通用的定义&#xff1a; 简洁的代码易于阅读。 这可能会让您感到有些惊讶&#xff0c;但我认为该定义也适用于测试代码。 使测试尽…

无线网桥的特点及应用方案

无线网桥顾名思义就是无线网络的桥接&#xff0c;它利用无线传输方式实现在两个或多个网络之间搭起通信的桥梁&#xff1b;无线网桥从通信机制上分为电路型网桥和数据型网桥。那么&#xff0c;无线网桥的特点及应用方案有哪些呢&#xff1f;接下来我们就一起来看看吧&#xff0…

Spring WebClient的单元测试

WebClient引用其Java文档是Spring Framework的 非阻塞&#xff0c;反应式客户端执行HTTP请求&#xff0c;通过底层HTTP客户端库&#xff08;如Reactor Netty&#xff09;公开流利的&#xff0c;反应式API 。 在我当前的项目中&#xff0c;我广泛使用WebClient进行服务到服务…

以太网的光猫和光纤的光猫有什么区别吗?

光调制解调器&#xff0c;光猫也称为单端口光端机&#xff0c;是针对特殊用户环境而研发的一种三件一套的光纤传输设备。该设备采用大规模集成芯片&#xff0c;电路简单&#xff0c;功耗低&#xff0c;可靠性高&#xff0c;具有完整的告警状态指示和完善的网管功能。光猫可以分…

SFP光模块基本概念及使用注意事项详解

光模块(optical module)由光电子器件、功能电路和光接口等组成&#xff0c;光电子器件包括发射和接收两部分。简单的说&#xff0c;光模块的作用就是光电转换&#xff0c;发送端把电信号转换成光信号&#xff0c;通过光纤传送后&#xff0c;接收端再把光信号转换成电信号。现在…

Java中的状态设计模式

在本教程中&#xff0c;我们将探讨另一种流行的行为设计模式-状态设计模式。 当我们使用可以存在于多个状态的对象时&#xff0c;状态设计模式的知识变得非常有用。 当对象的行为取决于其当前状态时&#xff0c;我们应该主要使用它。 这种模式有助于我们避免在该类的方法中对对…

串口服务器工作方式及常见异常故障问题排除方法介绍

串口设备联网服务器就像一台带CPU、实时操作系统和TCP/IP协议的微型电脑&#xff0c;方便在串口和网络设备中传输数据。您可以在世界任何位置通过网络&#xff0c;用您的计算机来存取&#xff0c;管理和配置远程的设备。但是我们在实际使用串口服务器的过程中&#xff0c;难免会…

E1立体声卡侬头(XLR) 音频编解码器产品介绍

FCA系列音频编解码器是一种采用数字处理芯片及大规模FPGA、数字编解码转换和时钟恢复技术方法设计的基于E1(2M)通道传输立体声广播信号的广播传送设备系统&#xff0c;它可以借助目前成熟可靠的E1传输系统网&#xff0c;建立起数字立体声广播传送系统网络&#xff0c;实现广播传…

E1视音频编解码器应用方案详细说明

E1音频编解码器&#xff0c;是采用数字处理芯片及大规模FPGA、数字编解码转换和时钟恢复技术方法设计的。适用于广播节目源传输的设备。音频编码器是将输入的立体声音频信号&#xff0c;经A/D数字编解码变换或数据格式转换后&#xff0c;重新成帧&#xff0c;形成串行数据流&am…

java请求接口示例_Java 8:功能接口示例

java请求接口示例为了支持Java 8中的lambda表达式&#xff0c;他们引入了Functional Interfaces。 具有单一抽象方法的接口可以称为功能接口。 Runnable&#xff0c;Comparator&#xff0c;Cloneable是功能接口的一些示例。 我们可以使用Lambda表达式实现这些功能接口。 例如…

Java中的外观设计模式

立面是指建筑物的外观。 当穿过街道时&#xff0c;我们所看到的只是建筑物的外观。 该图面抽象了建筑物的所有复杂实施细节。 同样&#xff0c; 外观设计模式旨在为子系统中的一组接口提供统一的接口。 这个统一的接口对客户端隐藏了子系统的复杂性。 它属于结构模式类别。 J…

串口服务器介绍及产品特点详解

串口服务器提供串口转网络功能&#xff0c;能够将RS-232/485/422串口转换成TCP/IP网络接口&#xff0c;实现RS-232/485/422串口与TCP/IP网络接口的数据双向透明传输。使得串口设备能够立即具备TCP/IP网络接口功能&#xff0c;连接网络进行数据通信&#xff0c;极大的扩展串口设…

串口服务器应用领域及应用方案详解

串口服务器提供串口转网络功能&#xff0c;使得串口设备能够立即具备TCP/IP网络接口功能&#xff0c;连接网络进行数据通信&#xff0c;极大的扩展串口设备的通信距离&#xff0c;应用领域非常广泛。接下来我们就来为大家详细介绍下串口服务器的应用领域及应用方案&#xff0c;…

将对象转换为Map并返回

在大型企业应用程序中&#xff0c;有时我们需要将数据对象与Map相互转换。 通常&#xff0c;这是特殊序列化的中间步骤。 如果可以使用某种标准&#xff0c;则最好使用该标准&#xff0c;但是很多时候&#xff0c;一些首席架构师所设想的体系结构&#xff0c;严格的环境或某些类…

多串口服务器的工作方式及接线示意图介绍

串口服务器提供串口转网络功能&#xff0c;能够将RS-232/485/422串口转换成TCP/IP网络接口&#xff0c;实现RS-232/485/422串口与TCP/IP网络接口的数据双向透明传输。那么&#xff0c;多串口服务器是怎么工作&#xff0c;怎么接线的&#xff1f;接下来就由飞畅科技小编一起来为…

多路串口服务器的应用及应用范围介绍

串口服务器的应用领域很是广泛&#xff0c;主要应用在门禁系统、考勤系统、售贩系统、POS系统、楼宇自控系统、自助银行系统、电信机房监控、电力监控等。接下来就由飞畅科技的小编来为大家详细介绍下多路串口服务器的应用及应用范围&#xff0c;感兴趣的朋友就一起来看看吧&am…

javafx 调用接口_JavaFX技巧3:使用回调接口

javafx 调用接口作为UI框架开发人员&#xff0c;提供自定义控件外观和行为的方法是我工作的一部分。 在许多情况下&#xff0c;这是通过允许框架用户在控件上注册工厂来完成的。 过去&#xff0c;我会为此创建一个工厂接口&#xff0c;并在框架内提供一个或多个默认实现。 这些…