SpringBoot集成內(nèi)存數(shù)據(jù)庫hsqldb的實(shí)踐
目標(biāo)
在SpringBoot中集成內(nèi)存數(shù)據(jù)庫hsqldb.
為什么
像H2、hsqldb、derby、sqlite這樣的內(nèi)存數(shù)據(jù)庫,小巧可愛,做小型服務(wù)端演示程序,非常好用。最大特點(diǎn)就是不需要你另外安裝一個(gè)數(shù)據(jù)庫。
操作步驟
修改pom.xml文件
<dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> </dependency>
修改項(xiàng)目配置文件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
添加初始化數(shù)據(jù)文件
建表腳本:schema.sql
CREATE TABLE blog ( id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY, title varchar(255) DEFAULT NULL, );
導(dǎo)入數(shù)據(jù)腳本:data.sql
insert into blog(id,title) values(1,'花生皮編程博客');
啟動(dòng)類: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();
}
數(shù)據(jù)bean:Blog
@Data
public class Blog {
private int id;
private String title;
}
工程截圖

運(yùn)行
運(yùn)行HspApplication即可
效果

總結(jié)
1.當(dāng)前的hsqldb在配置的時(shí)候一定要在url中添加shutdown=true;否者會(huì)出現(xiàn)錯(cuò)誤:
org.hsqldb.HsqlException: user lacks privilege or object not found: USER(表不存在的錯(cuò)誤)
2.當(dāng)前的hsqldb中的實(shí)體類只需要@Entity注解,@Id和@GeneratedValue
3.dao層需要繼承jpa的或者reposity即可
完整源代碼
https://gitee.com/hspbc/springboot_memdb
到此這篇關(guān)于SpringBoot集成內(nèi)存數(shù)據(jù)庫hsqldb的實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot集成hsqldb內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)例講解Java讀取一般文本文件和word文檔的方法
讀取一般文本文件很好辦,調(diào)用Java自帶的io包里的類即可,富文本的doc文件我們可以用Apache的poi項(xiàng)目中的WordExtractor,這里我們一起來以實(shí)例講解Java讀取一般文本文件和word文檔的方法2016-06-06
Java使用JavaMail API發(fā)送和接收郵件的代碼示例
JavaMail是Oracle甲骨文開發(fā)的Java郵件類API,支持多種郵件協(xié)議,這里我們就來看一下Java使用JavaMail API發(fā)送和接收郵件的代碼示例2016-06-06
利用spring的攔截器自定義緩存的實(shí)現(xiàn)實(shí)例代碼
這篇文章主要介紹了利用spring的攔截器自定義緩存的實(shí)現(xiàn)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Java的Socket網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)入門教程
這篇文章主要介紹了Java的Socket網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)入門教程,包括基于TCP/IP和UDP協(xié)議的簡單實(shí)例程序講解,需要的朋友可以參考下2016-01-01
Java通過SMS短信平臺(tái)實(shí)現(xiàn)發(fā)短信功能 含多語言
這篇文章主要為大家詳細(xì)介紹了Java通過SMS短信平臺(tái)實(shí)現(xiàn)發(fā)短信功能的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-07
IntellIJ?IDEA顯示內(nèi)存不足的完美解決方法
IntelliJ?IDEA是一款廣泛使用的Java集成開發(fā)環(huán)境,以其強(qiáng)大的功能和高效的編碼體驗(yàn)深受開發(fā)者喜愛,然而?在我們導(dǎo)入大項(xiàng)目時(shí),?IntellIJ?Idea?向我們拋出了一個(gè)?OutOfMemoryError?內(nèi)存不足,?所以本文給大家介紹了IntellIJ?Idea顯示內(nèi)存不足的完美解決方法2025-03-03

