转载: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

最新文章

  1. scikit-learn Adaboost类库使用小结
  2. Java开发中的23种设计模式详解(转)
  3. Openbox简单支持平铺
  4. Dubbo框架
  5. UVA 1395 苗条的生成树(最小生成树+并查集)
  6. HDU 5973 Game of Taking Stones 威佐夫博弈+大数
  7. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(7)
  8. [css] px em rem
  9. 李洪强漫谈iOS开发[C语言-019]-断点调试
  10. StringBuffer与StringBuilder之间的区别
  11. 格式化URL
  12. poj 1192最优连通子集(简单树形dp)
  13. 验证码 Demo
  14. OWIN 自宿主模式WebApi项目,WebApi层作为单独类库供OWIN调用
  15. 《开发技巧》WEB APP开发调试技巧
  16. 轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数
  17. Python3.6安装报错 configure: error: no acceptable C compiler found in $PATH
  18. 洛谷P4907【CYH-01】小奔的国庆练习赛 :$A$换$B$ $problem$(DFS,剪枝)
  19. Codeforces 1107 E - Vasya and Binary String
  20. TCP/IP 之 大明王朝邮差 (转)

热门文章

  1. luogu P1307 数字反转 x
  2. Period POJ - 1961
  3. create-react-app下的@修饰器正确的使用方式记录
  4. 我眼中的CentOS 下 安全策略
  5. [CSP-S模拟测试96]题解
  6. sql语句insert into where 错误解析
  7. linux中awk 详解
  8. Jenkins使用四:Jenkins创建任务,实现代码有改动时,自动构建
  9. WPF国际化方式1之资源文件
  10. 解读:nginx的一个神秘配置worker_cpu_affinity