转载: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的更多相关文章

  1. Springboot集成Spring Batch

    Spring官网 (https://spring.io/projects/spring-batch#overview)对Spring  Batch的解释: 一个轻量级的.全面的批处理框架,用于开发对企 ...

  2. 【springBoot】springBoot集成redis的key,value序列化的相关问题

    使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...

  3. SpringBoot集成security

    本文就SpringBoot集成Security的使用步骤做出解释说明.

  4. springboot集成Actuator

    Actuator监控端点,主要用来监控与管理. 原生端点主要分为三大类:应用配置类.度量指标类.操作控制类. 应用配置类:获取应用程序中加载的配置.环境变量.自动化配置报告等与SpringBoot应用 ...

  5. SpringBoot集成Shiro并用MongoDB做Session存储

    之前项目鉴权一直使用的Shiro,那是在Spring MVC里面使用的比较多,而且都是用XML来配置,用Shiro来做权限控制相对比较简单而且成熟,而且我一直都把Shiro的session放在mong ...

  6. SpringBoot集成redis的key,value序列化的相关问题

    使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...

  7. springboot集成mybatis(二)

    上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...

  8. springboot集成mybatis(一)

    MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...

  9. springboot集成redis(mybatis、分布式session)

    安装Redis请参考:<CentOS快速安装Redis> 一.springboot集成redis并实现DB与缓存同步 1.添加redis及数据库相关依赖(pom.xml) <depe ...

随机推荐

  1. C# 获取路径中,文件名、目录、扩展名等

    string path = "C:\\dir1\\dir2\\foo.txt"; string str = "GetFullPath:" + Path.GetF ...

  2. vue组件传值之父传子

    1.父组件给子组件传值  home父组件  header子组件  关键字props home代码 <template> <div> <v-header :title=&q ...

  3. 重写LayoutParams,读取子View自定义属性

    在EasyConstraintLayout内部定义一个静态类LayoutParams继承ConstraintLayout.LayoutParams,然后在构造方法中读取上面自定义的属性.我们通过裁剪的 ...

  4. 2018-2019-2 20175307 实验四《Android程序设计》实验报告

    任务一 实验要求和内容: Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十 ...

  5. php面试专题---8、会话控制考点

    php面试专题---8.会话控制考点 一.总结 一句话总结: 主要是cookie和session的区别,以及用户禁用cookie之后怎么使用session 1.为什么要使用会话控制技术? 因为http ...

  6. vue2.X 与 vue1.X 的区别

    vue2.0: bower info vue http://vuejs.org/ 到了2.0以后,有哪些变化? 1. 在每个组件模板,不在支持片段代码 组件中模板: 之前: <template& ...

  7. 邮件解析 CNAME记录 A记录

    域名配置 示例发信配置请至域名 service.i-test.cn DNS服务提供商处添加TXT记录,并保持SPF记录正确,否则会无法发信.*1.所有权验证类型 主机记录 主域名 记录值 状态TXT ...

  8. Ubuntu 18.04 截图工具 Shutter(可以标记重点)-安装及使用

    Shutter 是一个功能丰富的屏幕截图程序.您可以屏幕的某个特定区域.特定的窗口. 或者是整个屏幕,甚至一整个网站截图.可以对截图应用各种效果,标记重点,然后上 传到一个图片托管网站——所有的任务在 ...

  9. IntelliJ IDEA 2018 2.X破解

    一 下载idea 官网 :https://www.jetbrains.com/idea/ 二 下载破解包 IntelliJ IDEA 2018.1.X--2.X(2.6可用,图就不改了) 链接: ht ...

  10. EasyUI的时间控件禁止输入

    <td class="right">制单日期:</td>  <td class="left"> <input name ...