SpringBoot集成H2database
转载:https://blog.csdn.net/chenhao_c_h/article/details/80332260
h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库
H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
可以同应用程序打包在一起发布
它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
提供JDBC访问接口,提供基于浏览器的控制台,可以执行sql
免费,开源,够快
还方便了程序刚开始dao层单元测试测试,不需要搭建oracle,不需要加载mysql,快速测试写的dao
h2database 官网地址:http://www.h2database.com/html/main.html
点击下载,解压即可。
解压缩后的目录结构:
h2
|---bin
| |---h2-1.1.116.jar //H2数据库的jar包(驱动也在里面)
| |---h2.bat //Windows控制台启动脚本
| |---h2.sh //Linux控制台启动脚本
| |---h2w.bat //Windows控制台启动脚本(不带黑屏窗口)
|---docs //H2数据库的帮助文档(内有H2数据库的使用手册)
|---service //通过wrapper包装成服务。
|---src //H2数据库的源代码
|---build.bat //windows构建脚本
|---build.sh //linux构建脚本
此时就算“安装”完成了。
切换到h2解压目录。
➜ ~ cd Downloads/h2
➜ h2 nohup ./bin/h2_server.sh
appending output to nohup.out
弹出h2管理页面,启动成功。
浏览器访问:http://localhost:8082/
二、后台代码
创建SpringBoot工程,https://start.spring.io/
添加maven依赖:
<!--h2-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.195</version>
</dependency>
配置application.yml
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test
username: sa
password:
此处的url跟classname均可在页面管理中找到。
此为嵌入式链接模式,只允许一个链接,如果想多个链接,比如测试代码链接和页面的h2控制台链接,请使用混合模式链接
将 JDBC URL 后加上 AUTO_SERVER=TRUE
同理 在yml文件中修改链接数据URL 后加上 AUTO_SERVER=TRUE
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test;AUTO_SERVER=TRUE
username: sa
password:
添加 jpa 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
修改yml,新增show-sql、ddl-auto设为update
jpa:
show-sql: true
hibernate:
ddl-auto: update
添加简单实体类
@Entity
@Data
public class User {
@Id //主键
private Integer id;
private Integer age;
private String name;
private String address;
private String city;
}
添加UserRepository
public interface UserRepository extends JpaRepository<User,Integer> {
}
三、开始测试
添加测试类UserRepositoryTest
数据新增测试
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void addUser() {
User user = new User();
user.setId(1);
user.setName("张三");
user.setAddress("北京");
user.setAge(19);
user.setCity("北京");
userRepository.save(user);
}
}
console->
查看h2控制台
数据添加成功,测试修改
@Test
public void editUser(){
User user = new User();
user.setId(1);
user.setName("李四");
user.setAddress("上海");
user.setAge(20);
user.setCity("上海");
userRepository.save(user);
}
查看h2控制台->
数据修改成功,测试查询
@Test
public void queryUser(){
User user = userRepository.findOne(1);
System.out.println(user);
Assert.assertEquals("李四",user.getName());
Assert.assertEquals("上海",user.getAddress());
}
console->
数据查询成功,测试删除
@Test
public void delUser(){
userRepository.delete(1);
}
查看h2控制台
数据删除测试成功。
代码github:git@github.com:ChenHaoXFN/h2Demo.git
参考文献: https://blog.csdn.net/fanpeizhong/article/details/73543260
jpa增删改查:https://www.cnblogs.com/stm32stm32/p/10052810.html
入门超级详细版:https://www.cnblogs.com/xdp-gacl/p/4171024.html
SpringBoot集成H2database的更多相关文章
- Springboot集成Spring Batch
Spring官网 (https://spring.io/projects/spring-batch#overview)对Spring Batch的解释: 一个轻量级的.全面的批处理框架,用于开发对企 ...
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...
- SpringBoot集成security
本文就SpringBoot集成Security的使用步骤做出解释说明.
- springboot集成Actuator
Actuator监控端点,主要用来监控与管理. 原生端点主要分为三大类:应用配置类.度量指标类.操作控制类. 应用配置类:获取应用程序中加载的配置.环境变量.自动化配置报告等与SpringBoot应用 ...
- SpringBoot集成Shiro并用MongoDB做Session存储
之前项目鉴权一直使用的Shiro,那是在Spring MVC里面使用的比较多,而且都是用XML来配置,用Shiro来做权限控制相对比较简单而且成熟,而且我一直都把Shiro的session放在mong ...
- SpringBoot集成redis的key,value序列化的相关问题
使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...
- springboot集成mybatis(二)
上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...
- springboot集成mybatis(一)
MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...
- springboot集成redis(mybatis、分布式session)
安装Redis请参考:<CentOS快速安装Redis> 一.springboot集成redis并实现DB与缓存同步 1.添加redis及数据库相关依赖(pom.xml) <depe ...
随机推荐
- 04 全局配置,java 编意默认版本,1.6.修改配置
https://www.cnblogs.com/liu-s/p/5371289.html <!-- 修改Intellij Idea 创建maven项目默认Java编译版本 --> < ...
- Curl命令、Elinks命令、lynx命令、Wget命令、lftp命令
一.Curl命令 语法 curl(选项)(参数) 选项 -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -a ...
- 解决 canvas 在高清屏中绘制模糊的问题
主要代码部分: <canvas id="my_canvas" width="540" heihgt="180"></can ...
- [CSP-S模拟测试]:Dinner(二分)
题目描述 清儿今天请好朋友们吃饭,一共$N$个人坐在坐在圆桌旁.吃饭的第一步当然是点餐了.服务员拿来了$M$份菜单.第$i$个人阅读菜单并点出自己喜欢的菜需要花费时间$T_i$.当一个人点完菜之后,就 ...
- IDEA设置Ctrl+滚轮调整字体大小(转载)
按Ctrl+Shift+A,出现搜索框 输入mouse: 点击打开这个设置:勾选 点击ok,之后就可以通过Ctrl+滚轮 调整字体大小了. 转载自:http://www.cnblogs.com/LUA ...
- ANTLR4加载csv数据
实现功能: 编写一个自定义的监听器,将逗号分隔符文件(csv)中的数据加载到一种数据结构--“由Map组成的List”中. antlr4文件: grammar CSV; file : hdr row+ ...
- POI 单元格类型CellType
1.单元格类型 单元格的内容决定了单元格的类型,POI中定义的7种单元格类型: 2.示例 cell_0.setCellType(CellType.STRING);//字符串 日期数据对应的单元格类型是 ...
- Android7.1后对于Toast类型窗口的限制
在处理问题的时候,经常会遇到ANR,停止运行等问题,经过分析和验证,和如下的一行关键log有关 WindowManager: Adding more than one toast window for ...
- 学院-成就学院:Academy of Achievement
ylbtech-学院-成就学院:Academy of Achievement 1.返回顶部 1. https://www.achievement.org/ 2. https://www.achieve ...
- OAuth 2.0 综述
OAuth 2.0 rfc6749 规范 OAuth 2.0 rfc6749 规范-带目录,阅读 RFC 文档的 工具 OAuth 官网 OAuth2 核心 角色 Token 类型 access to ...