• SpringBoot整合SQLite


    SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。

    就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

    功能特性

    1. ACID事务
    2. 零配置 – 无需安装和管理配置
    3. 储存在单一磁盘文件中的一个完整的数据库
    4. 数据库文件可以在不同字节顺序的机器间自由的共享
    5. 支持数据库大小至2TB
    6. 足够小, 大致13万行C代码, 4.43M
    7. 比一些流行的数据库在大部分普通数据库操作要快
    8. 简单, 轻松的API
    9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定
    10. 良好注释的源代码, 并且有着90%以上的测试覆盖率
    11. 独立: 没有额外依赖
    12. 源码完全的开源, 你可以用于任何用途, 包括出售它
    13. 支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等

    1、pom.xml

    1. <dependencies>
    2. <!--web应用基本环境配置 -->
    3. <dependency>
    4. <groupId>org.springframework.boot</groupId>
    5. <artifactId>spring-boot-starter-web</artifactId>
    6. </dependency>
    7. <!--sqlite-->
    8. <dependency>
    9. <groupId>org.xerial</groupId>
    10. <artifactId>sqlite-jdbc</artifactId>
    11. </dependency>
    12. <!-- jdbc -->
    13. <dependency>
    14. <groupId>org.springframework.boot</groupId>
    15. <artifactId>spring-boot-starter-jdbc</artifactId>
    16. </dependency>
    17. </dependencies>

    2、application.properties

     SQLite只需要关联一个.db文件,就能实现数据库的连接操作。  

    1. spring.datasource.driver-class-name=org.sqlite.JDBC
    2. #绝对位置配置方式
    3. #spring.datasource.url=jdbc:sqlite:E:/db/test.db
    4. #相对位置配置方式
    5. spring.datasource.url=jdbc:sqlite::resource:db/test.db

    在如下位置,手动创建一个 test.db 空文件

    3、测试代码

    1. @Autowired
    2. private JdbcTemplate jdbcTemplate;
    1. // 1、建表 DDL
    2. String createUser = "create table user(" +
    3. "id integer primary key autoincrement," +
    4. "name varchar(20)," +
    5. "age integer" +
    6. ")";
    7. jdbcTemplate.update(createUser);
    8. // 2、插入数据
    9. String insertUserData = "insert into user(name,age) values ('张三',18),('李四',20)";
    10. jdbcTemplate.update(insertUserData);
    11. // 3、查询语句
    12. String selectUserData = "select * from user";
    13. List<Map<String, Object>> list = jdbcTemplate.queryForList(selectUserData);
    14. for (Map<String, Object> map : list) {
    15. for (Map.Entry<String, Object> entry : map.entrySet()) {
    16. System.out.println(entry.getKey() + "=" + entry.getValue());
    17. }
    18. }
    19. // 5、删除整张表
    20. String dropTable = "drop table user";
    21. jdbcTemplate.update(dropTable);

    完整测试代码

    1. package com.study.myweb;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.boot.CommandLineRunner;
    4. import org.springframework.boot.SpringApplication;
    5. import org.springframework.boot.autoconfigure.SpringBootApplication;
    6. import org.springframework.jdbc.core.JdbcTemplate;
    7. import org.springframework.stereotype.Controller;
    8. import java.util.List;
    9. import java.util.Map;
    10. @SpringBootApplication
    11. public class MyWebApplication implements CommandLineRunner {
    12. @Autowired
    13. private JdbcTemplate jdbcTemplate;
    14. public static void main(String[] args) {
    15. SpringApplication.run(MyWebApplication.class, args);
    16. }
    17. @Override
    18. public void run(String... args) throws Exception {
    19. // 1、建表 DDL
    20. String createUser = "create table user(" +
    21. "id integer primary key autoincrement," +
    22. "name varchar(20)," +
    23. "age integer" +
    24. ")";
    25. jdbcTemplate.update(createUser);
    26. // 2、插入数据
    27. String insertUserData = "insert into user(name,age) values ('张三',18),('李四',20)";
    28. jdbcTemplate.update(insertUserData);
    29. // 3、查询语句
    30. String selectUserData = "select * from user";
    31. List<Map<String, Object>> list = jdbcTemplate.queryForList(selectUserData);
    32. for (Map<String, Object> map : list) {
    33. for (Map.Entry<String, Object> entry : map.entrySet()) {
    34. System.out.println(entry.getKey() + "=" + entry.getValue());
    35. }
    36. }
    37. // 4、删除整张表
    38. String dropTable = "drop table user";
    39. jdbcTemplate.update(dropTable);
    40. }
    41. }

  • 相关阅读:
    被环境变量虐过一遍获得的启示
    antdesignvue数字输入框限制只能输入整数
    货币银行学重点内容复习
    【C++】详解std::thread
    基于ssm的旅游网站的设计与实现
    iptables防火墙
    个人申请软著需要具备什么
    72:第六章:开发文章服务:5:开发【发表文章,接口】;
    【软件】Ubuntu16.04安装repo全纪录,构建自己的repo仓库,最详细的步骤大全,以及踩坑大全
    HPA (Horizontal Pod Autoscaler) In K8s
  • 原文地址:https://blog.csdn.net/u014644574/article/details/127677122