SpringBoot:Sqlite3+SpringBoot2.1.3+Mybatis-Puls整合项目

应公司要求完成sqlite3数据库的增改查小功能,特此记录一下。

1.建造项目

结构如下

 

因为是提供给前端调用所以做了接口。

2.Pom依赖文件

下面是这个项目所依赖的jar包。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!-- 统一管理jar包版本 -->
    <properties>
        <java.version>12</java.version>
        <mybatis.spring.boot.version>2.0.0</mybatis.spring.boot.version>
        <sqlite.jdbc.version>3.27.2.1</sqlite.jdbc.version>
    </properties>

    <dependencies>
        <!-- SpringBoot基础包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- sqlite3驱动包 -->
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
            <version>${sqlite.jdbc.version}</version>
        </dependency>
        <!-- Springboot兼容Mybatis版本 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.spring.boot.version}</version>
        </dependency>
        <!-- mybatis-Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.6</version>
        </dependency>
        <!-- 阿里FastJson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>
    </dependencies>

    <!-- SpringBoot兼容maven打包工具 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>

3.application.yml配置文件

//当数据库目录位于 resources/sqlite/dome.db 时 DriverManager.getConnection("jdbc:sqlite::resource:sqlite/dome.db");即配置文件应该写jdbc:sqlite::resource:sqlite/dome.db

#端口
server: port:
8190 #spring spring: datasource:
#sqlite3驱动 driver
-class-name: org.sqlite.JDBC # 方式一: 引用外部文件 # url: jdbc:sqlite:D:/eclipse/dome.db #方式二: 引用项目中的文件 url: jdbc:sqlite::resource:sqlite/dome.db username: password: # sql打印 logging: level: debug level.com.xuanyin: debug path: logs/ # file: admin.log

4.java实体类

接下来是java各个实体类。

DomeController.java

package com.java.common.controller;

import com.alibaba.fastjson.JSONObject;
import com.java.common.entity.Dome;
import com.java.common.service.DomeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class DomeController {
    private static final Logger logger = LoggerFactory.getLogger(DomeController.class);

    @Autowired
    DomeService domeService;

    @RequestMapping("/select")
    @ResponseBody
    public String getSelect(@RequestParam("title")String title){
        Dome dome = new Dome();
        logger.info(" = = = title : {} = = = ",title);
        if(title != null){
            dome = domeService.selectData(title);
            if(dome != null){
                String json = JSONObject.toJSONString(dome);
                logger.info(" = = = json : {} = = = ",json);
                return json;
            }
        }
        return "主题字段为空!";
    }

    @RequestMapping("/insert")
    @ResponseBody
    public String getInsert(@RequestBody Dome dome){
        int result = 0;
        logger.info(" = = = dome : {} = = = ", JSONObject.toJSONString(dome));
        if(dome != null) {
            result = domeService.insertData(dome);
            logger.info(" = = = result : {} = = = ", result);
        }
        if(result > 0){
            return "添加成功!!";
        }
        return "添加失败!!";
    }

    @RequestMapping("/update")
    @ResponseBody
    public String getUpdate(@RequestBody Dome dome){
        int result = 0;
        logger.info(" = = = dome : {} = = = ", JSONObject.toJSONString(dome));
        if(dome != null){
            result = domeService.updateData(dome);
            logger.info(" = = = result : {} = = = ", result);
        }
        if(result > 0){
            return "修改成功!!";
        }
        return "修改失败!!";
    }
}

Dome.java

package com.java.common.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("dome")
public class Dome {

    //主键
    @TableId("domeId")
    private Integer domeId;

    //主题
    private String title;

    //内容
    private String content;

    //分类
    private String type;

    public Integer getDomeId() {
        return domeId;
    }

    public void setDomeId(Integer domeId) {
        this.domeId = domeId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

DomeMapper.java

package com.java.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.java.common.entity.Dome;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DomeMapper extends BaseMapper<Dome> {

}

DomeService.java

package com.java.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.java.common.entity.Dome;

public interface DomeService extends IService<Dome> {

    //查询
    Dome selectData(String title);

    //添加
    int insertData(Dome dome);

    //修改
    int updateData(Dome dome);

}

DomeServiceImpl.java

package com.java.common.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.EmptyWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.java.common.entity.Dome;
import com.java.common.mapper.DomeMapper;
import com.java.common.service.DomeService;
import org.springframework.stereotype.Service;

import java.util.Date;

@Service
public class DomeServiceImpl extends ServiceImpl<DomeMapper, Dome> implements DomeService {


    @Override
    public Dome selectData(String title) {
        QueryWrapper<Dome> domeWrapper = new QueryWrapper<>();
        domeWrapper.eq("title", title);
        Dome dome = baseMapper.selectOne(domeWrapper);
        return dome;
    }

    @Override
    public int insertData(Dome dome) {
        String str = String.valueOf(new Date().getTime());
        int domeId = Integer.valueOf(str.substring(5,str.length()));
        dome.setDomeId(domeId);
        int result = baseMapper.insert(dome);
        return result;
    }

    @Override
    public int updateData(Dome dome) {
        UpdateWrapper<Dome> domeWrapper = new UpdateWrapper<>();
        domeWrapper.eq("title", dome.getTitle());
        int result = baseMapper.update(dome,domeWrapper);
        return result;
    }
}

DomeApplication.java

package com.java.common;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DomeApplication {
    private final static Logger logger = LoggerFactory.getLogger(DomeApplication.class);

    public static void main(String[] args) {
        logger.info(" = = = 服务开始启动 = = = ");
        SpringApplication.run(DomeApplication.class,args);
        logger.info(" = = = 服务启动完成 = = = ");
    }

}

5.sqlite3数据库文件

参照 https://www.cnblogs.com/nhdlb/p/14292248.html 文章自行创建。

posted @ 2021-01-18 12:55  怒吼的萝卜  阅读(1275)  评论(0编辑  收藏  举报