SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)hsqldb的實(shí)踐
目標(biāo)
在SpringBoot中集成內(nèi)存數(shù)據(jù)庫(kù)hsqldb.
為什么
像H2、hsqldb、derby、sqlite這樣的內(nèi)存數(shù)據(jù)庫(kù),小巧可愛(ài),做小型服務(wù)端演示程序,非常好用。最大特點(diǎn)就是不需要你另外安裝一個(gè)數(shù)據(jù)庫(kù)。
操作步驟
修改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)類(lèi):HspApplication
@MapperScan({"cn.hsp.blog"})
@SpringBootApplication
public class HspApplication {
public static void main(String[] args) {
SpringApplication.run(HspApplication.class, args);
}
}
Controller類(lèi):BlogController
@RestController
@RequestMapping("/blog")
public class BlogController {
@Autowired
private BlogMapper blogMapper;
@GetMapping(value="/query")
public List<Blog> query()
{
return blogMapper.query();
}
}
Mapper類(lèi):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í)體類(lèi)只需要@Entity注解,@Id和@GeneratedValue
3.dao層需要繼承jpa的或者reposity即可
完整源代碼
https://gitee.com/hspbc/springboot_memdb
到此這篇關(guān)于SpringBoot集成內(nèi)存數(shù)據(jù)庫(kù)hsqldb的實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot集成hsqldb內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)例講解Java讀取一般文本文件和word文檔的方法
讀取一般文本文件很好辦,調(diào)用Java自帶的io包里的類(lèi)即可,富文本的doc文件我們可以用Apache的poi項(xiàng)目中的WordExtractor,這里我們一起來(lái)以實(shí)例講解Java讀取一般文本文件和word文檔的方法2016-06-06
Java中常用數(shù)據(jù)類(lèi)型的輸入輸出詳解
本文主要介紹了Java中幾個(gè)常用的數(shù)據(jù)類(lèi)型是如何輸入和輸出的,例如:Char型、int型、double型、數(shù)組、字符串等,對(duì)我們學(xué)習(xí)java有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)2021-12-12
Java使用JavaMail API發(fā)送和接收郵件的代碼示例
JavaMail是Oracle甲骨文開(kāi)發(fā)的Java郵件類(lèi)API,支持多種郵件協(xié)議,這里我們就來(lái)看一下Java使用JavaMail API發(fā)送和接收郵件的代碼示例2016-06-06
利用spring的攔截器自定義緩存的實(shí)現(xiàn)實(shí)例代碼
這篇文章主要介紹了利用spring的攔截器自定義緩存的實(shí)現(xiàn)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Java的Socket網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)入門(mén)教程
這篇文章主要介紹了Java的Socket網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)入門(mén)教程,包括基于TCP/IP和UDP協(xié)議的簡(jiǎn)單實(shí)例程序講解,需要的朋友可以參考下2016-01-01
Java通過(guò)SMS短信平臺(tái)實(shí)現(xiàn)發(fā)短信功能 含多語(yǔ)言
這篇文章主要為大家詳細(xì)介紹了Java通過(guò)SMS短信平臺(tái)實(shí)現(xiàn)發(fā)短信功能的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-07
Servlet實(shí)現(xiàn)簡(jiǎn)單文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Servlet實(shí)現(xiàn)簡(jiǎn)單文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
詳談Java中的事件監(jiān)聽(tīng)機(jī)制
下面小編就為大家?guī)?lái)一篇詳談Java中的事件監(jiān)聽(tīng)機(jī)制。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
IntellIJ?IDEA顯示內(nèi)存不足的完美解決方法
IntelliJ?IDEA是一款廣泛使用的Java集成開(kāi)發(fā)環(huán)境,以其強(qiáng)大的功能和高效的編碼體驗(yàn)深受開(kāi)發(fā)者喜愛(ài),然而?在我們導(dǎo)入大項(xiàng)目時(shí),?IntellIJ?Idea?向我們拋出了一個(gè)?OutOfMemoryError?內(nèi)存不足,?所以本文給大家介紹了IntellIJ?Idea顯示內(nèi)存不足的完美解決方法2025-03-03

