最近做一个小项目,需要存储的数据不多,用mysql太重了,用其他的Redis之类的也不太方便,然后就想到了H2,他就是一个jar包,可以和项目一起打包发布,非常适合数据量不多的微小系统,下面大概介绍下H2的基本知识和Springboot的集成
一.什么是H2内存数据库
H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
1.H2用途
- H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。
- 它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。
- H2的第三个用处是作为缓存,作为NoSQL的一个补充。
2.H2优势
- 纯Java开发的,只有一个jar文件,非常适合作为嵌入式数据库,也支持服务器模式和集群
- h2提供了一个十分方便的web控制台用于操作和管理数据库内容;
- 完全支持jdbc和sql,使用起来和mysql没啥区别
二.Springboot集成H2
1.添加依赖
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.添加配置
spring:
datasource:
data: classpath:db/data.sql
driverClassName: org.h2.Driver
platform: h2
schema: classpath:db/table.sql
url: jdbc:h2:mem:test
# url:jdbc:h2:~/test
#url:jdbc:h2:tcp//localhost/〜/test
username: root
password: 123123
h2:
console:
enabled: true
path: /h2
settings:
web-allow-others: true
jpa:
hibernate:
ddl-auto: update
show-sql: true
url: jdbc:h2:mem:test 内存模式,数据不会持久化
url:jdbc:h2:~/test 嵌入模式,数据文件存储在用户目录test开头的文件中
url:jdbc:h2:tcp//localhost/〜/test 远程模式,访问远程的h2 数据库
3.resource下添加表结构sql文件和初始化sql文件
table.sql
create table if not exists user(
USER_ID int not null primary key auto_increment,
USER_NAME varchar(50)
);
data.sql
INSERT INTO user (USER_ID,USER_NAME) VALUES(1,'user1');
4.添加实体类
package com.demo.h2.entity;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "user")
public class User {
@Id
private int userId;
private String userName;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
5.添加dao
package com.demo.h2.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.demo.h2.entity.User;
@Repository
public interface UserDAO extends JpaRepository<User, Integer> {
}
dao使用方法和一般jps相同,这个就不再赘述
项目启动之后访问http://localhost:8080/h2 就可以访问h2数据库的可视化后台,填入配置的url和驱动,帐号密码等信息进入操作控制台。
版权归原作者 陪妳去流浪丶 所有, 如有侵权,请联系我们删除。