Sqlite安装使用及springboot整合

SQLite介绍

什么是SQLite

SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。它不需要单独安装,类似于一个文本文件,又可以放置在项目内作为持久化数据的内嵌式数据库使用。使用SQLite一般只需要带上一个dll,就可以使用它的全部功能。

SQLite应用场景

存储手机App应用、小型的Web项目或者桌面应用的持久化数据

SQLite安装

Windows安装SQLite

1.官网下载地址: https://www.sqlite.org/download.html

2.下载如下两个压缩文件(根据系统不同下载文件略有差别)

 3.创建文件夹 D:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到以下文件

4.将sqlite安装地址配置为环境变量:我的电脑右击->属性->高级系统设置->高级->环境变量->Path->编辑->新建->[你的安装目录]->ok,新建完毕后任一地址执行sqlite命令可进入命令行

Linux安装SQLite

1.使用下面的命令来检查您的机器上是否已经安装了 SQLite


user@naviproc1:~$ sqlite

Command 'sqlite' not found, but can be installed with:

sudo apt install sqlite

2.如未安装则使用命令安装,安装完毕进入敲sqlite3命令进入sqlite命令行

user@naviproc1:~$ sudo apt install sqlite3
user@naviproc1:~$ sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 

3.使用【.quit】或【.exit】命令退出sqlite3控制界面

数据库表创建测试

1.在数据库文件存放地址新建test.db(test为数据库名),例如在d:/project/db/新建test.db文件

2.打开数据库文件,打开的方式有两种:

第一种:先进入sqlite3再打开文件

sqlite> .open d:/project/db/test.db

第二种:直接打开文件

C:\Windows\system32>sqlite3 d:/project/db/test.db

3.执行建表语句,并插入部分测试数据

DROP TABLE IF EXISTS "user";
CREATE TABLE "user" (
  "uid" text(36) NOT NULL,
  "name" TEXT,
  "sex" integer,
  "email" TEXT,
  PRIMARY KEY ("uid")
);

4.数据插入完毕后可执行查询语句

sqlite> select * from user;
700|jQsuV|1|
74|zgIvN|1|
648|fLhFT|1|
561|AycmK|1|
436|TnPxs|1|

5.结果显示正常则SQLite安装完成

SpringBoot 整合 Sqlite3

1.pom.xml引入所需jar包

		<dependency>
			<groupId>p6spy</groupId>
			<artifactId>p6spy</artifactId>
			<version>3.8.7</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.28.0</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.2.0</version>
		</dependency>

		<!--mybatis plus-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.2.0</version>
		</dependency>

2.application.yml配置数据库连接

server:
  port: 8089
spring:
  datasource:
    url: jdbc:p6spy:sqlite:D:\project\db\test.db
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    username:
    password:

3.数据库表和实体类的对应;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName
public class User {
    @TableId
    private String uid;
    private String name;
    private Integer sex;
    private String email;
    /*
    * 数据库不存在的字段
    * */
    @TableField(exist = false)
    private String nickName;
}

4.mapper接口,继承BaseMapper即可

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.sqlite.pojo.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

5.在启动类上加上扫描mapper文件夹的注解,以防找不到mapper映射

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.demo.sqlite.mapper")
@SpringBootApplication
public class SqliteApplication {

	public static void main(String[] args) {
		SpringApplication.run(SqliteApplication.class, args);
	}

}

6.接口访问实现基本功能

package com.demo.sqlite.controller;

import java.util.List;
import java.util.Map;
import java.util.Random;

import com.demo.sqlite.mapper.UserMapper;
import com.demo.sqlite.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import javax.annotation.Resource;


@RequestMapping("/index")
@RestController
public class IndexController {

    @Resource
    private UserMapper userMapper;

    /**
     * 获取所有数据
     * @return
     */
    @GetMapping
    public Object index(){
        return userMapper.selectList(null);
    }

    /**
     * 新增
     * @return
     */
    @GetMapping("/insert")
    public Object insert(){
        User user = new User();
        user.setName(randomString());
        Random random = new Random();
        user.setUid("" + random.nextInt(1000));
        user.setSex(1);
        return userMapper.insert(user);
    }

    /**
     * 获取总数
     * @return
     */
    @GetMapping("/count")
    public Object index1(){
        Integer userCount = userMapper.selectCount(null);
        return userCount;
    }

    /**
     * 获取一个list集合
     * 排序 orderByAsc("order_id")
     * 不为null的判断 isNotNull("stove_code")
     * 分组 groupBy("product_model")
     * @return
     */
    @GetMapping("/male")
    public Object index2(){
        List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("sex", 1));
        return users;
    }

    /**
     * 获取一个map集合
     * @return
     */
    @GetMapping("/map")
    public Object index3(){
        List<Map<String,Object>> users = userMapper.selectMaps(new QueryWrapper<User>()
                .select("uid,name")
                .eq("sex", 1));
        return users;
    }

    /**
     * 随机生成字母
     * @return
     */
    public String randomString(){
        StringBuilder s = new StringBuilder(5);
        Random random = new Random();
        for( int i = 0; i < 5; i ++) {
            int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写还是小写
            s.append((char)(choice + random.nextInt(26)));
        }
        return s.toString();
    }
}

参考链接:

https://www.jianshu.com/p/8462e5fa34c3

SQLite 安装与使用_IT小郭.的博客-CSDN博客_sqlite安装

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值