刷新认知!h2database在springboot中的使用
h2为轻量级数据库 , 使用特别方便 , 它可以不使用数据库服务器 , 直接嵌入到java程序中 。 可以配置持久化 , 同样也可以不持久化(数据在内存中)进程结束后 , 数据就释放 , 用做测试和演示特别方便 。 自带后台管理 , 非常方便 , 开源免费
- 类库 , 使用maven简易安装
- 可以同应用程序打包在一起发布
- 可持久化 , 也可以直接基于内存不保留数据 , 适合于做单元测试
org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-weborg.projectlombok lomboktrue com.h2database h2runtime1.4.193 org.mybatis.spring.boot mybatis-spring-boot-starter2.1.1
application.yml配置#server:port: 8080spring:datasource:driver-class-name: org.h2.Driver#schema: classpath:db/schema-h2.sql #初始化建表#data: classpath:db/data-h2.sql #初始化数据#url: jdbc:h2:mem:test#不持久化 , 放在内存中url: jdbc:h2:~/testusername: rootpassword: testh2:console:path: /h2-consoleenabled: true #必须配置 , 不然无法访问
- 配置中提供了初始化数据库语句schema: classpath:db/schema-h2.sql
- 配置中提供数据初始化语句data: classpath:db/data-h2.sql
- 当然你也可以不初始化数据和表 , 在程序启动后 , 可以通过 localhost:8080/h2-console访问数据库管理后台 。 通过后台操作h2数据库
- 持久化与否url: jdbc:h2:mem:test代表数据放置于内存中 , 这种适合做单元测试 , 一次性使用url: jdbc:h2:~/test 代表数据存放于 家目录/test中
文章插图
文章插图
文章插图
测试查询功能#完整代码参考:
- Application.java
package demosimple.h2;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("demosimple.h2.mapper")public class Application {public static void main(String[] args) {SpringApplication.run(Application.class,args);}}
- TestController.java
package demosimple.h2.controller;import demosimple.h2.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController {@AutowiredUserMapper userMapper;@GetMapping("/test")public Object test(){return userMapper.getById(1L);}}