SpringBoot集成H2database

h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库

  • H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
  • 可以同应用程序打包在一起发布
  • 它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
  • 提供JDBC访问接口,提供基于浏览器的控制台,可以执行sql
  • 免费,开源,够快

还方便了程序刚开始dao层单元测试测试,不需要搭建oracle,不需要加载mysql,快速测试写的dao


一、下载与安装

h2database 官网地址:http://www.h2database.com/html/main.html

SpringBoot集成H2database_第1张图片

点击下载,解压即可。

 

解压缩后的目录结构:

  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管理页面,启动成功。

SpringBoot集成H2database_第2张图片

浏览器访问:http://localhost:8082/


二、后台代码

创建SpringBoot工程,https://start.spring.io/

添加maven依赖:

    
    
	com.h2database
	h2
	1.4.195
    

配置application.yml

spring:
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:~/test
    username: sa
    password:

此处的url跟classname均可在页面管理中找到。

SpringBoot集成H2database_第3张图片

此为嵌入式链接模式,只允许一个链接,如果想多个链接,比如测试代码链接和页面的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 依赖

 


  org.springframework.boot
  spring-boot-starter-data-jpa

修改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 {

}

三、开始测试

添加测试类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->

SpringBoot集成H2database_第4张图片

查看h2控制台

SpringBoot集成H2database_第5张图片

 

  • 数据添加成功,测试修改
 @Test
  public void editUser(){
    User user = new User();
    user.setId(1);
    user.setName("李四");
    user.setAddress("上海");
    user.setAge(20);
    user.setCity("上海");
    userRepository.save(user);
  }

查看h2控制台->

SpringBoot集成H2database_第6张图片

 

  • 数据修改成功,测试查询
  @Test
  public void queryUser(){
    User user = userRepository.findOne(1);
    System.out.println(user);
    Assert.assertEquals("李四",user.getName());
    Assert.assertEquals("上海",user.getAddress());

  }

console->

SpringBoot集成H2database_第7张图片

 

  • 数据查询成功,测试删除
  @Test
  public void delUser(){
    userRepository.delete(1);
  }

查看h2控制台

SpringBoot集成H2database_第8张图片

数据删除测试成功。

代码github:[email protected]:ChenHaoXFN/h2Demo.git

参考文献: https://blog.csdn.net/fanpeizhong/article/details/73543260

你可能感兴趣的:(springBoot)