Java中使用SQLite數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例
SQLite簡(jiǎn)介
SQLite 是一個(gè)開(kāi)源的嵌入式關(guān)系數(shù)據(jù)庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、配置無(wú)需的、事務(wù)性的 SQL 數(shù)據(jù)庫(kù)引擎。它是一個(gè)零配置的數(shù)據(jù)庫(kù),這意味著與其他數(shù)據(jù)庫(kù)系統(tǒng)不同,比如 MySQL、PostgreSQL 等,SQLite 不需要在系統(tǒng)中設(shè)置和管理一個(gè)單獨(dú)的服務(wù)。這也使得 SQLite 是一種非常輕量級(jí)的數(shù)據(jù)庫(kù)解決方案,非常適合小型項(xiàng)目、嵌入式數(shù)據(jù)庫(kù)或者測(cè)試環(huán)境中。
SQLite 的一些主要特性包括:
- 無(wú)服務(wù)器的:SQLite 不是一個(gè)單獨(dú)的服務(wù)進(jìn)程,而是直接嵌入到應(yīng)用程序中。它直接讀取和寫(xiě)入磁盤(pán)文件。
- 事務(wù)性的:SQLite 支持 ACID(原子性、一致性、隔離性、持久性)屬性,能夠確保所有事務(wù)都是安全、一致的,即使在系統(tǒng)崩潰或者電力中斷的情況下。
- 零配置的:SQLite 不需要任何配置或者管理,這使得它非常容易安裝和使用。
- 自包含的:SQLite 是一個(gè)自包含系統(tǒng),這意味著它幾乎不依賴(lài)其他任何外部系統(tǒng)或者庫(kù),這使得 SQLite 的跨平臺(tái)移植非常方便。
- 小型的:SQLite 非常小巧輕量,全功能的 SQLite 數(shù)據(jù)庫(kù)引擎的大小只有幾百KB。
- 廣泛應(yīng)用:SQLite 被廣泛應(yīng)用在各種各樣的產(chǎn)品和系統(tǒng)中,包括手機(jī)、平板電腦、嵌入式系統(tǒng)、物聯(lián)網(wǎng)設(shè)備等。它也被廣泛用于網(wǎng)站開(kāi)發(fā)、科學(xué)研究、數(shù)據(jù)分析等領(lǐng)域。
在一些輕量級(jí)的應(yīng)用場(chǎng)景下,SQLite 是一個(gè)非常理想的選擇,因?yàn)樗?jiǎn)單、高效、易于使用和部署。然而,對(duì)于需要處理大量并發(fā)寫(xiě)操作或者需要更高級(jí)的功能(如用戶(hù)管理或者存儲(chǔ)過(guò)程等)的應(yīng)用場(chǎng)景,更全功能的數(shù)據(jù)庫(kù)系統(tǒng)(如 PostgreSQL 或 MySQL)可能會(huì)是更好的選擇。
SQLite優(yōu)勢(shì)
為什么要用SQLite?
不需要一個(gè)單獨(dú)的服務(wù)器進(jìn)程或操作的系統(tǒng)(無(wú)服務(wù)器的)。
SQLite 不需要配置,這意味著不需要安裝或管理。
一個(gè)完整的 SQLite 數(shù)據(jù)庫(kù)是存儲(chǔ)在一個(gè)單一的跨平臺(tái)的磁盤(pán)文件。
SQLite 是非常小的,是輕量級(jí)的,完全配置時(shí)小于 400KiB,省略可選功能配置時(shí)小于250KiB。
SQLite 是自給自足的,這意味著不需要任何外部的依賴(lài)。
SQLite 事務(wù)是完全兼容 ACID 的,允許從多個(gè)進(jìn)程或線(xiàn)程安全訪(fǎng)問(wèn)。
SQLite 支持 SQL92(SQL2)標(biāo)準(zhǔn)的大多數(shù)查詢(xún)語(yǔ)言的功能。
SQLite 使用 ANSI-C 編寫(xiě)的,并提供了簡(jiǎn)單和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運(yùn)行。
安裝 SQLite
此處省略。(本文主要講解如何在編程中使用SQLite)
基本使用
SQLite是一種輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它支持使用SQL語(yǔ)言進(jìn)行數(shù)據(jù)管理和查詢(xún)。以下是SQLite數(shù)據(jù)SQL語(yǔ)句的基本使用。
1. 創(chuàng)建表格
CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ... );
例如,創(chuàng)建一個(gè)名為“students”的表格,包含學(xué)生的姓名和年齡字段:
CREATE TABLE students ( name VARCHAR(50) NOT NULL, age INT NOT NULL );
2. 插入數(shù)據(jù)
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
例如,向“students”表格插入一條學(xué)生記錄:
INSERT INTO students (name, age)
VALUES ('John', 20);3. 查詢(xún)數(shù)據(jù)
SELECT column1, column2, ... FROM table_name WHERE condition;
例如,查詢(xún)“students”表格中年齡大于等于18歲的學(xué)生:
SELECT name, age FROM students WHERE age >= 18;
4. 更新數(shù)據(jù)
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
例如,將“students”表格中年齡小于18歲的學(xué)生年齡更新為18歲:
UPDATE students SET age = 18 WHERE age < 18;
5. 刪除數(shù)據(jù)
DELETE FROM table_name WHERE condition;
例如,刪除“students”表格中姓名為“John”的學(xué)生記錄:
DELETE FROM students WHERE name = 'John';
以上是SQLite數(shù)據(jù)SQL語(yǔ)句的基本使用,可以用于創(chuàng)建表格、插入數(shù)據(jù)、查詢(xún)數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)。詳細(xì)的SQL語(yǔ)句語(yǔ)法和功能,請(qǐng)參考SQLite官方文檔。SQLite 簡(jiǎn)介 | 菜鳥(niǎo)教程DB Browser for SQLite
Java使用SQLite
下面是一個(gè)使用Java和SQLite的示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLiteExample {
public static void main(String[] args) {
try {
// 連接到SQLite數(shù)據(jù)庫(kù)
Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");
// 創(chuàng)建一個(gè)Statement對(duì)象來(lái)執(zhí)行SQL查詢(xún)
Statement statement = connection.createStatement();
// 創(chuàng)建一個(gè)表
String createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
statement.execute(createTableQuery);
// 插入一些數(shù)據(jù)
String insertDataQuery = "INSERT INTO users (name, age) VALUES ('John', 25), ('Jane', 30), ('Mike', 35)";
statement.execute(insertDataQuery);
// 查詢(xún)數(shù)據(jù)
String selectDataQuery = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(selectDataQuery);
// 打印查詢(xún)結(jié)果
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
}
// 關(guān)閉連接
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}在這個(gè)示例中,我們首先使用`DriverManager.getConnection()`方法連接到SQLite數(shù)據(jù)庫(kù)。然后,我們使用一個(gè)`Statement`對(duì)象來(lái)執(zhí)行SQL查詢(xún)。
我們創(chuàng)建了一個(gè)名為`users`的表,并插入了一些數(shù)據(jù)。然后,我們使用`SELECT`語(yǔ)句查詢(xún)表中的所有數(shù)據(jù),并使用`resultSet`迭代結(jié)果集并打印出來(lái)。
最后,我們關(guān)閉了`resultSet`,`statement`和`connection`對(duì)象,以確保資源的正確釋放。
Springboot使用SQLite
在使用Spring Boot開(kāi)發(fā)項(xiàng)目時(shí),可以使用SQLite作為數(shù)據(jù)庫(kù)。SQLite是一種嵌入式數(shù)據(jù)庫(kù),它不需要獨(dú)立的服務(wù)端,數(shù)據(jù)庫(kù)文件可以直接嵌入到應(yīng)用程序中。
以下是一個(gè)使用Spring Boot和SQLite的示例:
1.添加依賴(lài)
首先,在pom.xml文件中添加Spring Boot和SQLite的依賴(lài):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.30.1</version>
</dependency>
2.配置數(shù)據(jù)庫(kù)
在application.properties文件中,配置數(shù)據(jù)庫(kù)連接:
spring.datasource.url=jdbc:sqlite:mydatabase.db spring.jpa.database-platform=org.hibernate.dialect.SQLiteDialect
這里使用了名為mydatabase.db的SQLite數(shù)據(jù)庫(kù)文件。
3.創(chuàng)建實(shí)體類(lèi)
創(chuàng)建一個(gè)實(shí)體類(lèi),用于映射數(shù)據(jù)庫(kù)表:
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// getters and setters
}
4.創(chuàng)建Repository接口
創(chuàng)建一個(gè)Repository接口,用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作:
public interface PersonRepository extends JpaRepository<Person, Long> {
// 可以自定義查詢(xún)方法
}
5.創(chuàng)建控制器
創(chuàng)建一個(gè)控制器,用于處理HTTP請(qǐng)求:
@RestController
public class PersonController {
@Autowired
private PersonRepository personRepository;
@GetMapping("/persons")
public List<Person> getAllPersons() {
return personRepository.findAll();
}
@PostMapping("/persons")
public Person createPerson(@RequestBody Person person) {
return personRepository.save(person);
}
// 其他操作方法
}
6.運(yùn)行應(yīng)用程序
最后,在Application類(lèi)中添加@SpringBootApplication注解,并運(yùn)行應(yīng)用程序:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
現(xiàn)在,你可以通過(guò)發(fā)送HTTP請(qǐng)求來(lái)操作Person實(shí)體類(lèi)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表了。
以上就是一個(gè)使用Spring Boot和SQLite的示例。你可以根據(jù)自己的需要,修改實(shí)體類(lèi)、Repository接口和控制器,以適應(yīng)你的項(xiàng)目需求。
到此這篇關(guān)于Java中使用SQLite數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Java使用SQLite數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中使用websocket出現(xiàn)404的解決方法
在Springboot中使用websocket時(shí),本地開(kāi)發(fā)環(huán)境可以正常運(yùn)行,但部署到服務(wù)器環(huán)境出現(xiàn)404問(wèn)題,所以本文小編講給大家詳細(xì)介紹一下SpringBoot中使用websocket出現(xiàn)404的解決方法,需要的朋友可以參考下2023-09-09
java的內(nèi)部類(lèi)和外部類(lèi)用法講解
本文詳細(xì)講解了java的內(nèi)部類(lèi)和外部類(lèi)用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼
這篇文章主要介紹了easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
java中struts2實(shí)現(xiàn)簡(jiǎn)單的文件上傳與下載
這篇文章主要為大家詳細(xì)介紹了java中struts2實(shí)現(xiàn)簡(jiǎn)單的文件上傳與下載的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05
Maven的配置文件pom.xml詳解(含常用plugin)
pom.xml是Maven項(xiàng)目的核心配置文件,它是 項(xiàng)目對(duì)象模型 - Project Object Model(POM)的縮寫(xiě),本文我們將全面解析pom.xml,了解其結(jié)構(gòu)和屬性,以及如何使用它來(lái)管理項(xiàng)目,感興趣的朋友跟隨小編一起看看吧2024-08-08
SpringBoot中的PropertySource原理詳解
這篇文章主要介紹了SpringBoot中的PropertySource原理詳解,PropertySource?是一個(gè)非常重要的概念,它允許您在應(yīng)用程序中定義屬性,并將這些屬性注入到?Spring?環(huán)境中,需要的朋友可以參考下2023-07-07
Mybatis?mysql模糊查詢(xún)方式(CONCAT多個(gè)字段)及bug
這篇文章主要介紹了Mybatis?mysql模糊查詢(xún)方式(CONCAT多個(gè)字段)及bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
springboot整合mqtt實(shí)現(xiàn)消息訂閱和推送功能
mica-mqtt-client-spring-boot-starter是一個(gè)方便、高效、可靠的MQTT客戶(hù)端啟動(dòng)器,適用于需要使用MQTT協(xié)議進(jìn)行消息通信的Spring Boot應(yīng)用程序,這篇文章主要介紹了springboot整合mqtt實(shí)現(xiàn)消息訂閱和推送功能,需要的朋友可以參考下2024-02-02

