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;
-
-
-
-
public class User {
-
-
private String uid;
-
private String name;
-
private Integer sex;
-
private String email;
-
/*
-
* 数据库不存在的字段
-
* */
-
false)(exist =
-
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;
-
-
-
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;
-
"com.demo.sqlite.mapper")(
-
-
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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhekfj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24