- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章详解IDEA中便捷内存数据库H2的最简使用方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在idea中做练习或做demo时,有时候需要使用到数据库,但如果自己机子上本来没有安装数据库(全新安装太麻烦或资源有限),也没有可用的远程数据库时,我们可以直接在idea上使用便捷式的内存数据库h2,关于h2更多知识就自己去找一下资料了,接下来主要讲一下如何在idea下的springboot项目中把它用起来! 。
首先在idea中新建一个空的maven项目,编辑项目pom.xml文件,增加springboot和最基础的数据访问相关jar包依赖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<project xmlns=
"http://maven.apache.org/pom/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation=
"http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelversion>4.0.0</modelversion>
<groupid>org.example</groupid>
<artifactid>microservice-simple-provider-
user
</artifactid>
<version>1.0-snapshot</version>
<packaging>jar</packaging>
<parent>
<artifactid>spring-boot-starter-parent</artifactid>
<groupid>org.springframework.boot</groupid>
<version>2.4.2</version>
</parent>
<properties>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<!
--springboot的web项目起步依赖-->
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
<version>2.4.2</version>
</dependency>
<dependency>
<!
--springboot的jpa数据访问组件起步依赖-->
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-data-jpa</artifactid>
<version>2.3.1.release</version>
</dependency>
<dependency>
<!
--自动构建h2嵌入式或内存数据库的依赖-->
<groupid>com.h2database</groupid>
<artifactid>h2</artifactid>
<version>1.4.200</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
<version>2.4.2</version>
</plugin>
</plugins>
</build>
</project>
|
然后在classpath路径范围内增加建表sql脚本文件和数据初始化文件:
接着再添加springboot项目配置文件application.yml,并添加jpa、datasource和h2的主要配置项:
最后再为项目添加一个springboot启动类,即可将应用跑起来,并进行h2内存数据库的连接了:
注意:自动创建的h2内存数据库的管理地址就是我们在application.yml中配置的h2.console.path地址,进入管理页后如下图所示:
这样我们的应用就相当于自带了一个便捷式内存数据库了! 。
现在我们来为项目做一个最简单的h2内存数据库的使用样例——为h2数据库中的user表增加对应的实体类user.java、基于jpa的数据访问对象userrepository.java和api层控制类usercontroller.java:
user.java类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.example.models;
import com.fasterxml.jackson.annotation.jsonignoreproperties;
import javax.persistence.*;
import java.math.bigdecimal;
@jsonignoreproperties(value = {
"hibernatelazyinitializer"
})
@entity
public
class
user
{
@id
@generatedvalue(strategy = generationtype.auto)
private long id;
@
column
private string username;
@
column
private string
name
;
@
column
private
integer
age;
@
column
private bigdecimal balance;
public
long getid() {
return
id;
}
public
void setid(long id) {
this.id = id;
}
public
string getusername() {
return
username;
}
public
void setusername(string username) {
this.username = username;
}
public
string getname() {
return
name
;
}
public
void setname(string
name
) {
this.
name
=
name
;
}
public
integer
getage() {
return
age;
}
public
void setage(
integer
age) {
this.age = age;
}
public
bigdecimal getbalance() {
return
balance;
}
public
void setbalance(bigdecimal balance) {
this.balance = balance;
}
}
|
userrepository.java类:
1
2
3
4
5
6
7
8
9
|
package com.example.dao;
import com.example.models.
user
;
import org.springframework.data.jpa.repository.jparepository;
import org.springframework.stereotype.repository;
@repository
public
interface userrepository extends jparepository<
user
, long> {
}
|
usercontroller.java类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package com.example.controller;
import com.example.dao.userrepository;
import com.example.models.
user
;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.getmapping;
import org.springframework.web.bind.annotation.pathvariable;
import org.springframework.web.bind.annotation.restcontroller;
@restcontroller
public
class usercontroller {
@autowired
private userrepository userrepository;
@getmapping(
"/{id}"
)
public
user
findbyid(@pathvariable long id) {
user
oneuser = this.userrepository.getone(id);
return
oneuser;
}
}
|
最后的项目结构如图所示:
来看一下效果:
到此这篇关于详解idea中便捷内存数据库h2的最简使用方式的文章就介绍到这了,更多相关idea内存数据库h2内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://www.cnblogs.com/xuruiming/p/14493257.html 。
最后此篇关于详解IDEA中便捷内存数据库H2的最简使用方式的文章就讲到这里了,如果你想了解更多关于详解IDEA中便捷内存数据库H2的最简使用方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在具有 2CPU 和 3.75GB 内存 (https://aws.amazon.com/ec2/instance-types/) 的 c3.large Amazon EC2 ubuntu 机器上运
我想通过用户空间中的mmap-ing并将地址发送到内核空间从用户空间写入VGA内存(视频内存,而不是缓冲区),我将使用pfn remap将这些mmap-ed地址映射到vga内存(我将通过 lspci
在 Mathematica 中,如果你想让一个函数记住它的值,它在语法上是很轻松的。例如,这是标准示例 - 斐波那契: fib[1] = 1 fib[2] = 1 fib[n_]:= fib[n] =
我读到动态内存是在运行时在堆上分配的,而静态内存是在编译时在堆栈上分配的,因为编译器知道在编译时必须分配多少内存。 考虑以下代码: int n; cin>>n; int a[n]; 如果仅在运行期间读
我是 Python 的新手,但我之前还不知道这一点。我在 for 循环中有一个基本程序,它从站点请求数据并将其保存到文本文件但是当我检查我的任务管理器时,我发现内存使用量只增加了?长时间运行时,这对我
我正在设计一组数学函数并在 CPU 和 GPU(使用 CUDA)版本中实现它们。 其中一些函数基于查找表。大多数表占用 4KB,其中一些占用更多。基于查找表的函数接受一个输入,选择查找表的一两个条目,
读入一个文件,内存被动态分配给一个字符串,文件内容将被放置在这里。这是在函数内部完成的,字符串作为 char **str 传递。 使用 gdb 我发现在行 **(str+i) = fgetc(aFil
我需要证实一个理论。我正在学习 JSP/Java。 在查看了一个现有的应用程序(我没有写)之后,我注意到一些我认为导致我们的性能问题的东西。或者至少是其中的一部分。 它是这样工作的: 1)用户打开搜索
n我想使用memoization缓存某些昂贵操作的结果,这样就不会一遍又一遍地计算它们。 两个memoise和 R.cache适合我的需要。但是,我发现缓存在调用之间并不可靠。 这是一个演示我看到的问
我目前正在分析一些 javascript shell 代码。这是该脚本中的一行: function having() { memory = memory; setTimeout("F0
我有一种情况,我想一次查询数据库,然后再将整个数据缓存在内存中。 我得到了内存中 Elasticsearch 的建议,我用谷歌搜索了它是什么,以及如何在自己的 spring boot 应用程序中实现它
我正在研究 Project Euler (http://projecteuler.net/problem=14) 的第 14 题。我正在尝试使用内存功能,以便将给定数字的序列长度保存为部分结果。我正在
所以,我一直在做 Java 内存/注意力游戏作业。我还没有达到我想要的程度,它只完成了一半,但我确实让 GUI 大部分工作了......直到我尝试向我的框架添加单选按钮。我认为问题可能是因为我将 JF
我一直在尝试使用 Flask-Cache 的 memoize 功能来仅返回 statusTS() 的缓存结果,除非在另一个请求中满足特定条件,然后删除缓存。 但它并没有被删除,并且 Jinja 模板仍
我对如何使用 & 运算符来减少内存感到非常困惑。 我可以回答下面的问题吗? clase C{ function B(&$a){ $this->a = &$a; $thi
在编写代码时,我遇到了一个有趣的问题。 我有一个 PersonPOJO,其 name 作为其 String 成员之一及其 getter 和 setter class PersonPOJO { priv
在此代码中 public class Base { int length, breadth, height; Base(int l, int b, int h) { l
Definition Structure padding is the process of aligning data members of the structure in accordance
在 JavaScript Ninja 的 secret 中,作者提出了以下方案,用于在没有闭包的情况下内存函数结果。他们通过利用函数是对象这一事实并在函数上定义一个属性来存储过去调用函数的结果来实现这
我正在尝试找出 map 消耗的 RAM 量。所以,我做了以下事情;- Map cr = crPair.collectAsMap(); // 200+ entries System.out.printl
我是一名优秀的程序员,十分优秀!