SQLite实践

SQLite实践

1、为什么要使用SQLite

	项目比较小,但是又需要存储一些具有有效时间的token,避免在有效期内多次发起token请求。
	考虑采用,SQLite或者XML文件。

2、SQLite是什么

​ SQLite是一个软件库,实现了自给自足,无服务器,零配置(无需按安装和管理配置),事务性的,在世界被广泛部署的SQL数据库引擎。SQLite源代码不受版权限制。

简单来讲:轻量型数据库,占用资源小。

​ 写是这样写,但是还是不理解,为什么就是轻量型呢?建议自行查阅。以下是来自网络查询资料(不限于百度):

​ 1、SQLite是一款轻型数据库,遵守ACID(是指数据库管理系统在写入或更新的过程中,为保证事务的正确可靠,所具备的四个特性,原子性,一致性,隔离性,持久性)的关系型数据管理系统(DBMS)

​ 2、设计目标是嵌入式,占用资源非常低,在嵌入式设备中,可能只需要几百k的内存就够了。

​ 3、工作原理。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。(copy而已)

3、在SpringBoot中部署SQLite

3.1、 添加依赖

<dependency>
	<groupId>org.xerial</groupId>
	<artifactId>sqlite-jdbc</artifactId>
	<version>3.34.0</version>
 </dependency>
 

3.2 、配置数据源(创建数据库文件)

​ 在SpringBoot项目的配置文件application.properties(.yml)中,填写配置信息

spring.datasource.url=jdbc:sqlite:/path/sqlite.db
spring.datasource.driver-class-name=org.sqlite.JDBC

​ 其中path是数据库创建位置(会自动创建),下面是自己测试用例以及数据库创建的位置。

spring.datasource.url=jdbc:sqlite:sqlite.db
spring.datasource.driver-class-name=org.sqlite.JDBC

在这里插入图片描述

3.3、 创建实体类(entity)

public class User{
    private int id;
    private String name;
    private int age;
}

3.4、创建数据表

​ 关于SQLite的数据类型以及一些常用约束之类的,可以参考菜鸟教程。

CREATE TABLE 'user'
(
    id      INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 序号
    name    VARCHAR(255)    NOT NULL, --姓名
    age     INT   NOT NULL,  --年龄
   
);

解释一下:INTEGER PRIMARY KEY AUTOINCREMENT,表示id是主键,且自增。

自增约束(AUTOINCREAMENT),只能作用于INTERGER且是主键的字段,下面的用法是不对的

 id   INT PRIMARY KEY AUTOINCREMENT NOT NULL, -- 序号

3.5、创建对应的dao、service、xml文件

不再赘述!!!

4、SQLite的小tips

1、自动增加的ID参数, 可以使用AUTOICREMENT;

2、alter table 命令仅仅支持重命名表和在已有的表中增加列;

5、完善-自动创建实体类对应的表

错误描述:

打包运行的时候,会自动生成sqlite.db数据库,但是无法生成对应的数据表,因此需要进行配置,使其可以自动生成实体类对应的表。

解决方法:
1、`配置文件中加入下面代码
spring.jpa.hibernate.ddl-auto=update

在这里插入图片描述

2、给实体类加入注解
@Entity
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值