SpringBoot集成內存數據庫hsqldb的實踐

目標

在SpringBoot中集成內存數據庫hsqldb.

為什麼

像H2、hsqldb、derby、sqlite這樣的內存數據庫,小巧可愛,做小型服務端演示程序,非常好用。最大特點就是不需要你另外安裝一個數據庫。

操作步驟

修改pom.xml文件

<dependency>
   <groupId>org.hsqldb</groupId>
   <artifactId>hsqldb</artifactId>
</dependency>

修改項目配置文件application.yml

spring:
  datasource:
    username: hsp
    password: 123456
    url: jdbc:hsqldb:mem://localhost/blogdb;shutdown=true
    driver-class-name: org.hsqldb.jdbcDriver
    schema: classpath:schema.sql
    data: classpath:data.sql
    initialization-mode: always
    continue-on-error: true

添加初始化數據文件

建表腳本:schema.sql

CREATE TABLE blog (
  id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,
  title varchar(255) DEFAULT NULL,
);

導入數據腳本:data.sql

insert into blog(id,title) values(1,'花生皮編程博客');

啟動類:HspApplication

@MapperScan({"cn.hsp.blog"})
@SpringBootApplication
public class HspApplication {

 public static void main(String[] args) {
  SpringApplication.run(HspApplication.class, args);
 }

}

Controller類:BlogController

@RestController
@RequestMapping("/blog")
public class BlogController {

    @Autowired
    private BlogMapper blogMapper;

    @GetMapping(value="/query")
    public List<Blog> query()
    {
        return blogMapper.query();
    }
}

Mapper類:BlogMapper

@Repository
public interface BlogMapper {
    @Select(value = "select * from blog")
    List<Blog> query();
}

數據bean:Blog

@Data
public class Blog {
    private int id;
    private String title;
}

工程截圖

運行

運行HspApplication即可

效果

總結

1.當前的hsqldb在配置的時候一定要在url中添加shutdown=true;否者會出現錯誤:
org.hsqldb.HsqlException: user lacks privilege or object not found: USER(表不存在的錯誤)

2.當前的hsqldb中的實體類隻需要@Entity註解,@Id和@GeneratedValue

3.dao層需要繼承jpa的或者reposity即可

完整源代碼
https://gitee.com/hspbc/springboot_memdb

到此這篇關於SpringBoot集成內存數據庫hsqldb的實踐的文章就介紹到這瞭,更多相關SpringBoot集成hsqldb內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: