SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
功能特性
- <dependencies>
- <!--web应用基本环境配置 -->
- <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>
SQLite只需要关联一个.db文件,就能实现数据库的连接操作。
- spring.datasource.driver-class-name=org.sqlite.JDBC
- #绝对位置配置方式
- #spring.datasource.url=jdbc:sqlite:E:/db/test.db
- #相对位置配置方式
- spring.datasource.url=jdbc:sqlite::resource:db/test.db
在如下位置,手动创建一个 test.db 空文件

- @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、插入数据
- String insertUserData = "insert into user(name,age) values ('张三',18),('李四',20)";
- jdbcTemplate.update(insertUserData);
- // 3、查询语句
- 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);
完整测试代码
- 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、插入数据
- String insertUserData = "insert into user(name,age) values ('张三',18),('李四',20)";
- jdbcTemplate.update(insertUserData);
- // 3、查询语句
- 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);
- }
-
- }