Spring boot + Mybatis + SQLite 搭建blog API

一、准备环境

二、创建一个SpringBoot项目

在此我就不再演示如何创建SpringBoot项目了,需要的请看【 码出精彩人生】这位大佬的博客

三、在pom.xml文件中添加所需要的依赖jar

使用sqlite数据库需要引入sqlite-jdbc.jar包

org.xerial

sqlite-jdbc

3.21.0.1

pom.xml文件依赖如下

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.3

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.xerial

sqlite-jdbc

3.21.0.1

org.projectlombok

lombok

1.16.22

四、创建sqlite数据库

1、在项目的根目录下创建文件 blog-db.sqlite (名字随便起)

2、然后在IDEA右边边上有一个Database,点击创建SQLite数据库

3、File-->>选择第一步创建的 blog-db.sqlite ,然后点击Test Connection 测试是否连接成功

4、创建 d_user 表

(1) 控制台创建表

拷贝下面创建表语句,执行即可创建表

create table d_users

(

id int

constraint "d-users_pk"

primary key,

username text not null,

password text not null,

start int default 1 not null,

foundTime text

);

(2)手动创建

五、一切准备就绪开始写业务。

1、添加配置文件application.yaml

把创建项目生成的.properties配置文件删除,创建一个 application.yaml,配置文件放在 resources 目录下

server:

port: 8989 # 端口号

spring:

datasource:

url: jdbc:sqlite:D:/Software/PycharmProjects/d-blog/blog-db.sqlite # 创建的sqlite数据库所在路径

username: # 因为没有用户名和密码,所以这两个参数就没有值

password:

driver-class-name: org.sqlite.JDBC # sqlite驱动

# mybatis配置

mybatis:

mapper-locations: classpath:mybatis/mapper/*Mapper.xml # 配置mapper.xml文件路径

type-aliases-package: com.desire.entity # 实体类包名

# mybatis 打印SQL, 配置后就会在控制台打印执行的SQL语句

logging:

level:

com.desire.dao: debug

2、根据数据库表创建实体类--UserEntity.java

package com.desire.entity;

import lombok.Getter;

import lombok.Setter;

import lombok.ToString;

@Getter

@Setter

@ToString

public class UserEntity {

private int id;

private String userName;

private String password;

private int start;

private String foundTime;

}

3、在resources/mybatis/mapper中创建表的映射--UserMapper.xml

select * from d_users where id = #{id}

select * from d_users

4、创建表数据库访问层接口--IUserDao.java

package com.desire.dao;

import com.desire.entity.UserEntity;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**

* (D_Users)表数据库访问层

*/

@Mapper

public interface IUserDao {

UserEntity findUserById(int id);

List findUserAll();

}

5、创建表服务接口--IUserService.java

package com.desire.service;

import com.desire.entity.UserEntity;

import java.util.List;

/**

* (D_Users)表服务接口

*/

public interface IUserService {

UserEntity findUserById(int id);

List findUserAll();

}

6、创建表服务实现类--UserServiceImpl.java

package com.desire.service.impl;

import com.desire.dao.IUserDao;

import com.desire.entity.UserEntity;

import com.desire.service.IUserService;

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import java.util.List;

/**

* (D_Users)表服务实现类

*/

@Service

public class UserServiceImpl implements IUserService {

@Resource

private IUserDao IUserDao;

@Override

public UserEntity findUserById(int id) {

return IUserDao.findUserById(id);

}

@Override

public List findUserAll() {

return IUserDao.findUserAll();

}

}

7、创建表控制层Controller--UserController.java

package com.desire.controller;

import com.desire.common.DateUtil;

import com.desire.common.Result;

import com.desire.common.ResultUtil;

import com.desire.entity.UserEntity;

import com.desire.service.IUserService;

import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

import java.util.List;

import static com.desire.common.ResultEnum.*;

/**

* (D_Users)表控制层

*/

@RestController

@RequestMapping("/user")

public class UserController {

/**

* 服务对象

*/

@Resource

private IUserService userService;

@RequestMapping("getUser/{id}")

public Result getUser(@PathVariable int id) {

UserEntity user = userService.findUserById(id);

if (user != null) {

user.setFoundTime(DateUtil.timeStamp2Date(user.getFoundTime(), null));

return ResultUtil.success(SUCCESS, user);

} else {

return ResultUtil.error(USER_NOT_FOND);

}

}

@RequestMapping("getUsers")

public Result getUsers() {

List users = userService.findUserAll();

for (UserEntity user : users) {

user.setFoundTime(DateUtil.timeStamp2Date(user.getFoundTime(), null));

}

return ResultUtil.success(SUCCESS, users);

}

}

8、规范化封装统一返回数据格式

1)定义http请求返回的最外层对象,封装返回数据的统一格式 --Result.java

package com.desire.common;

import lombok.Getter;

import lombok.Setter;

/**

* http请求返回的最外层对象

* @param

*/

@Getter

@Setter

public class Result {

/**

* 错误码.

*/

private Integer code;

/**

* 提示信息.

*/

private String msg;

/**

* 具体的内容.

*/

private T data;

}

2) 为了统一管理返回数据结果code和message,新建一个枚举类ResultEnum.java

package com.desire.common;

import lombok.Getter;

@Getter

public enum ResultEnum {

UNKONW_ERROR(1001, "未知错误"),

SUCCESS(200, "成功")

;

private Integer code;

private String msg;

ResultEnum(Integer code, String msg) {

this.code = code;

this.msg = msg;

}

}

3) 为了防止多次出现new Result()的代码造成冗余,增加一个工具类ResultUtil.java

package com.desire.common;

/**

* 为了避免出现代码冗余情况,应该增加工具类,封装请求失败和成功时候的方法,这里可使用静态方法

*/

public class ResultUtil {

public static Result success(ResultEnum resultEnum, Object object) {

Result result = new Result<>();

result.setCode(resultEnum.getCode());

result.setMsg(resultEnum.getMsg());

result.setData(object);

return result;

}

public static Result error(ResultEnum resultEnum) {

Result result = new Result<>();

result.setCode(resultEnum.getCode());

result.setMsg(resultEnum.getMsg());

return result;

}

}

六、启动项目,验证写的是否正确--成功

七、写在最后

这个例子只实现了两个接口

最近在写一个博客相关的项目,前端vue部分已经完成(感觉写的很low),不过还有待继续改进,我也在继续学习vue,所用接口,用的是json server 做的服务。

有兴趣的可以看下,提点意见,【personal_blog】

这个SpringBoot项目就是我做的博客的接口服务,后续要把前端中的json server换成真实的接口。持续更新中,写的不好请给我提些建议。感谢看到最后。

java sqlite mybatis_Spring boot + Mybatis + SQLite 搭建blog API相关推荐

  1. java spring sqlite,Spring Boot+MyBatis+SQLite配置

    Spring Boot+MyBatis+SQLite配置例子参考下面 创建新项目 项目类型务必选择箭头指定的类型,否则不会自动生成代码模版 增加依赖项 junit junit 4.13.1 test ...

  2. idea创建springboot项目+mybatis_Spring Boot + MyBatis 多模块项目搭建教程

    Java后端,选择"" 优质文章,及时送达 作者 | 枫本非凡 链接 | cnblogs.com/orzlin/p/9717399.html 上篇 | IDEA 远程一键部署 Sp ...

  3. java mongodb mybatis_Spring Boot (八)MyBatis + Docker + MongoDB 4.x

    一.MongoDB简介 1.1 MongoDB介绍 MongoDB是一个强大.灵活,且易于扩展的通用型数据库.MongoDB是C++编写的文档型数据库,有着丰富的关系型数据库的功能,并在4.0之后添加 ...

  4. java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果

    概述 上文中已经介绍了Spring和MyBatis的整合,在上文的基础上我们加入了PageHelper这个插件,来实现MyBatis列表查询的分页效果 PageHelper是啥 PageHelper是 ...

  5. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  6. 纯国产环境JAVA程序(Springboot + Mybatis + 达梦数据库)搭建

    目录 JAVA程序搭建 前言 达梦数据库安装(WINDOWS) SpringBoot项目搭建 整合达梦数据库 源码 总结 JAVA程序搭建 前言 写在前面: 文章满满干货,每一步都是自己从零开始操作并 ...

  7. 商城项目(一)使用Spring boot + Mybatis搭建

    Spring boot + Mybatis基础架构 环境搭建 mysql 8 mysql客户端连接工具 Valentina Studio springboot 版本:2.1.3.RELEASE Myb ...

  8. spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器

    spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器 一.Mybatis plus代码自动生成器 1.引入配置 2.创建Controller 3.执行m ...

  9. spring boot+mybatis框架环境搭建

    配置spring boot+mybatis框架环境搭建 一, spring boot 环境搭建 以下步骤为 1,新建maven工程 2.在pom文件中添加: spring-boot-starter-p ...

最新文章

  1. 外贸网站制作 网页的宽度多少为合适
  2. 33 多线程同步之Condition
  3. SVN中提交时提示副本被锁定,执行清理时也提示副本被锁定的解决办法
  4. Shell的一些基本用法
  5. 工控设备 如何将数据发送到串口_实现4G无线通信透传的远程通信多组网5个PLC相互交换数据...
  6. 《搜索算法——DFS、BFS、回溯》
  7. 程序员找工作那点事儿
  8. 启动FastDFS服务,使用python客户端对接fastdfs完成上传测试
  9. 信息学奥赛一本通 1965:【14NOIP普及组】珠心算测验 | 洛谷 P2141 [NOIP2014 普及组] 珠心算测验
  10. 算法:由0-5随机数设计0-8随机数
  11. FileUpload上传图片提示 “GDI+中发生一般性错误”
  12. 基于 Flink+Iceberg 构建企业级实时数据湖
  13. 099 元类( 控制对象产生和控制类产生)模板
  14. 【疫情模型】基于matlab SEIR模型疫情分析预测【含Matlab源码 666期】
  15. tableau的下载安装及简单使用
  16. noip2017提高组初赛(答案+选择题题目+个人分析)
  17. JS 模拟手机页面文件的下拉刷新
  18. SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-
  19. 电动汽车整车控制SIMULINK仿真
  20. 2010中国互联网哈哈榜1:十大网络流行语

热门文章

  1. IT行业热点商业模式随笔第七章——商业模式创新规律
  2. B3log Solo 0.2.5.1 发布了!
  3. 广域网智能流量调度—Vecloud
  4. 各种音频编码方式的对比
  5. 普通用户程序使用保留端口 error while loading shared libraries
  6. 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
  7. nginx 配置两个域名
  8. [转]HTTPS网络流量解密方法探索系列(一)
  9. mysql错误:this authentication plugin is not supported
  10. python之operator操作符函数