SpringBoot整合SQLite數(shù)據(jù)庫(kù)全過(guò)程
前言
SQLite是一個(gè)進(jìn)程內(nèi)的庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫(kù)引擎。它是一個(gè)零配置的數(shù)據(jù)庫(kù),這意味著與其他數(shù)據(jù)庫(kù)不一樣,您不需要在系統(tǒng)中配置。
就像其他數(shù)據(jù)庫(kù),SQLite 引擎不是一個(gè)獨(dú)立的進(jìn)程,可以按應(yīng)用程序需求進(jìn)行靜態(tài)或動(dòng)態(tài)連接。SQLite 直接訪問(wèn)其存儲(chǔ)文件。
功能特性
- ACID事務(wù)
- 零配置 – 無(wú)需安裝和管理配置
- 儲(chǔ)存在單一磁盤文件中的一個(gè)完整的數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)文件可以在不同字節(jié)順序的機(jī)器間自由的共享
- 支持?jǐn)?shù)據(jù)庫(kù)大小至2TB
- 足夠小, 大致13萬(wàn)行C代碼, 4.43M
- 比一些流行的數(shù)據(jù)庫(kù)在大部分普通數(shù)據(jù)庫(kù)操作要快
- 簡(jiǎn)單, 輕松的API
- 包含TCL綁定, 同時(shí)通過(guò)Wrapper支持其他語(yǔ)言的綁定
- 良好注釋的源代碼, 并且有著90%以上的測(cè)試覆蓋率
- 獨(dú)立: 沒(méi)有額外依賴
- 源碼完全的開(kāi)源, 你可以用于任何用途, 包括出售它
- 支持多種開(kāi)發(fā)語(yǔ)言,C, C++, PHP, Perl, Java, C#,Python, Ruby等
1、pom.xml
<dependencies> <!--web應(yīng)用基本環(huán)境配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--sqlite--> <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> </dependency> <!-- jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> </dependencies>
2、application.properties
SQLite只需要關(guān)聯(lián)一個(gè).db文件,就能實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接操作。
spring.datasource.driver-class-name=org.sqlite.JDBC #絕對(duì)位置配置方式 #spring.datasource.url=jdbc:sqlite:E:/db/test.db #相對(duì)位置配置方式 spring.datasource.url=jdbc:sqlite::resource:db/test.db
在如下位置,手動(dòng)創(chuàng)建一個(gè) test.db 空文件
3、測(cè)試代碼
@Autowired private JdbcTemplate jdbcTemplate;
// 1、建表 DDL String createUser = "create table user(" + "id integer primary key autoincrement," + "name varchar(20)," + "age integer" + ")"; jdbcTemplate.update(createUser); // 2、插入數(shù)據(jù) String insertUserData = "insert into user(name,age) values ('張三',18),('李四',20)"; jdbcTemplate.update(insertUserData); // 3、查詢語(yǔ)句 String selectUserData = "select * from user"; List<Map<String, Object>> list = jdbcTemplate.queryForList(selectUserData); for (Map<String, Object> map : list) { for (Map.Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + "=" + entry.getValue()); } } // 5、刪除整張表 String dropTable = "drop table user"; jdbcTemplate.update(dropTable);
完整測(cè)試代碼
package com.study.myweb; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Controller; import java.util.List; import java.util.Map; @SpringBootApplication public class MyWebApplication implements CommandLineRunner { @Autowired private JdbcTemplate jdbcTemplate; public static void main(String[] args) { SpringApplication.run(MyWebApplication.class, args); } @Override public void run(String... args) throws Exception { // 1、建表 DDL String createUser = "create table user(" + "id integer primary key autoincrement," + "name varchar(20)," + "age integer" + ")"; jdbcTemplate.update(createUser); // 2、插入數(shù)據(jù) String insertUserData = "insert into user(name,age) values ('張三',18),('李四',20)"; jdbcTemplate.update(insertUserData); // 3、查詢語(yǔ)句 String selectUserData = "select * from user"; List<Map<String, Object>> list = jdbcTemplate.queryForList(selectUserData); for (Map<String, Object> map : list) { for (Map.Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + "=" + entry.getValue()); } } // 4、刪除整張表 String dropTable = "drop table user"; jdbcTemplate.update(dropTable); } }
總結(jié)
到此這篇關(guān)于SpringBoot整合SQLite數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)SpringBoot整合SQLite內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式的策略模式簡(jiǎn)析
這篇文章主要介紹了Java設(shè)計(jì)模式的策略模式簡(jiǎn)析,策略模式中定義了一系列的算法族,算法族指的是類似于一系列的行為、策略,策略模式將一系列的行為封裝成類,既可以說(shuō)是將每一種相類似的行為都封裝成一個(gè)類,也有可能存在特殊的不進(jìn)行封裝的行為,需要的朋友可以參考下2023-12-12java實(shí)現(xiàn)簡(jiǎn)單解析XML文件功能示例
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單解析XML文件功能,結(jié)合實(shí)例形式分析了java針對(duì)xml文件的讀取、遍歷節(jié)點(diǎn)及輸出等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10SpringBoot整合Redisson的步驟(單機(jī)版)
Redisson非常適用于分布式鎖,而我們的一項(xiàng)業(yè)務(wù)需要考慮分布式鎖這個(gè)應(yīng)用場(chǎng)景,于是我整合它做一個(gè)初步簡(jiǎn)單的例子(和整合redis一樣)。2021-05-05Spring?Boot?集成并開(kāi)發(fā)?Sa-token示例詳解
Sa-token是一款高可用的權(quán)限認(rèn)證框架,他帶我們用最簡(jiǎn)化的配置完成用?spring?security?需要進(jìn)行大量配置的才能完成的工作,這篇文章主要介紹了Spring?Boot?集成并開(kāi)發(fā)?Sa-token,需要的朋友可以參考下2023-06-06springboot 定時(shí)任務(wù)@Scheduled實(shí)現(xiàn)解析
這篇文章主要介紹了springboot 定時(shí)任務(wù)@Scheduled實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09我用java實(shí)現(xiàn)了王者榮耀的皮膚和英雄技能
上篇文章主要實(shí)現(xiàn)了創(chuàng)建英雄,創(chuàng)建野怪,創(chuàng)建裝備.并且實(shí)現(xiàn)了簡(jiǎn)單的刷怪,購(gòu)買裝備等.本篇文章我優(yōu)化了我的操作界面,并且實(shí)現(xiàn)了英雄技能,英雄皮膚等,需要的朋友可以參考下2021-05-05如何將復(fù)雜SQL轉(zhuǎn)換成Java對(duì)象的實(shí)例講解
轉(zhuǎn)換復(fù)雜SQL到Java代碼,我們需要確定數(shù)據(jù)庫(kù)連接方式和工具,使用JDBC的API來(lái)連接數(shù)據(jù)庫(kù)、執(zhí)行SQL語(yǔ)句,復(fù)雜SQL語(yǔ)句可以被拆分為多個(gè)步驟,每個(gè)步驟執(zhí)行一個(gè)特定的操作,通過(guò)將SQL語(yǔ)句拆分為多個(gè)步驟,我們可以更好地理解復(fù)雜SQL的邏輯,并且更容易將其轉(zhuǎn)換為Java代碼2024-05-05Mybatis返回Map對(duì)象的實(shí)現(xiàn)
本文介紹了Mybatis和MybatisPlus在查詢數(shù)據(jù)庫(kù)時(shí)返回Map對(duì)象的多種實(shí)現(xiàn)方式,這些方法有助于優(yōu)化DAO層代碼,使其更加清晰和高效,下面就來(lái)具體介紹一下,感興趣的可以了解一下2024-09-09Mybatis高級(jí)映射、動(dòng)態(tài)SQL及獲得自增主鍵的解析
MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。這篇文章主要介紹了Mybatis高級(jí)映射、動(dòng)態(tài)SQL及獲得自增主鍵的相關(guān)資料,需要的朋友可以參考下2016-11-11Java中JSON字符串進(jìn)行各種轉(zhuǎn)換的方法小結(jié)
Gson和Hutool的JSONUtil都是常用的用于處理JSON數(shù)據(jù)的工具庫(kù),它們提供了簡(jiǎn)單易用的API來(lái)進(jìn)行JSON字符串的解析、轉(zhuǎn)換和操作,下面就跟隨小編一起學(xué)習(xí)一下如果使用他們實(shí)現(xiàn)JSON字符串的各種轉(zhuǎn)換吧2024-01-01