零一开源—技术|科技|资源分享 零一开源—技术|科技|资源分享

技术分享与兴趣交流

目录
SpringBoot整合SQLite实战项目【附源码】
/  

SpringBoot整合SQLite实战项目【附源码】

image

1、什么是SQLite

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

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

2、SQLite能做什么

  • SQLite不需要一个单独的服务器进程或系统操作(服务器)。
  • SQLite 不需要配置,这意味着没有需要安装或管理。
  • 一个完整的SQLite数据库存储在一个单一的跨平台的磁盘文件。
  • SQLite是非常小,重量轻,小于400KiB完全配置或小于250KiB的省略可选功能。
  • SQLite是自足的,这意味着不需要任何外部的依赖。
  • SQLite的交易是完全符合ACID,允许多个进程或线程安全访问。
  • SQLite支持大多数(SQL2)符合SQL92标准的查询语言功能。
  • SQLite是在ANSI-C编写的,并提供了简单和易于使用的API。
  • SQLite可在UNIX(在Linux,Mac OS-X,Android,IOS)和Windows(Win32中,WINCE,WinRT的)中运行。

3、springboot整合SQLite实战

3.1 创建springboot项目

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/>
    </parent>
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 移除嵌入式tomcat插件 -->
            <exclusions>
                <exclusion>
                   <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
      
    </dependencies>

3.2 引入springboot和MyBatis依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

3.3 引入SQLite依赖

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

3.4 配置化项目

MyBatis配置

@Configuration
public class MyBatisConfig {
    @Autowired
    private DataSourceProperties dataSourceProperties;

    @Bean(name="dataSource")
    public DataSource dataSource() {
        SQLiteDataSource dataSource = new SQLiteDataSource();
        dataSource.setUrl(dataSourceProperties.getUrl());
        return dataSource;
    }

    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        return sqlSessionFactoryBean.getObject();
    }
}
@Configuration
public class MyBatisMapperScannerConfig {
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");

        //com.example.demo.dal.mapper 这个包名是所有的Mapper.java文件所在的路径,该包下面的子包里面的文件同样会扫描到。
        //此包名与具体的应用的名称相关
        mapperScannerConfigurer.setBasePackage("com.yunzin.dataview.mapper");

        return mapperScannerConfigurer;
    }

}

3.5 项目启动

因为我创建的demo是webapp工程,整合了一个最近发现的比较好看的前端框架:Pear Admin Layui,所以是以tomcat方式启动的。

  1. 配置tomcat

image.png

  1. 加入项目
  2. 启动
  3. Pear Admin Layui样式效果图

image

image

image

image

image

4、总结

其实使用SQLite的场景还是蛮多的,比较常见的CRM等小型信息化管理系统,皆可使用SQLite来完成。

只是我们都已经习惯了MySQL,而且互联网上关于MySQL的资料也非常全,也就基本上少有人去使用。

我认为在大型系统或者是处于互联网隔绝运行的平台,需要与外部系统进行数据交换或对接的场景下,使用SQLite来搭建一个数据转发服务是理想的选择,因为不依赖安装数据库,所需对接的基础数据可以存储在SQLite中,转发时保证了数据一致性。

5、源码获取

上述源码已上传至gitee仓库

关注公众号

回复关键字【sqlite】即可获取

image.png


标题:SpringBoot整合SQLite实战项目【附源码】
作者:hacken
地址:https://www.01open.com/articles/2022/01/14/1642168772622.html