java sqlite mybatis_Spring boot + Mybatis + SQLite 搭建blog API
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相关推荐
- java spring sqlite,Spring Boot+MyBatis+SQLite配置
Spring Boot+MyBatis+SQLite配置例子参考下面 创建新项目 项目类型务必选择箭头指定的类型,否则不会自动生成代码模版 增加依赖项 junit junit 4.13.1 test ...
- idea创建springboot项目+mybatis_Spring Boot + MyBatis 多模块项目搭建教程
Java后端,选择"" 优质文章,及时送达 作者 | 枫本非凡 链接 | cnblogs.com/orzlin/p/9717399.html 上篇 | IDEA 远程一键部署 Sp ...
- java mongodb mybatis_Spring Boot (八)MyBatis + Docker + MongoDB 4.x
一.MongoDB简介 1.1 MongoDB介绍 MongoDB是一个强大.灵活,且易于扩展的通用型数据库.MongoDB是C++编写的文档型数据库,有着丰富的关系型数据库的功能,并在4.0之后添加 ...
- java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果
概述 上文中已经介绍了Spring和MyBatis的整合,在上文的基础上我们加入了PageHelper这个插件,来实现MyBatis列表查询的分页效果 PageHelper是啥 PageHelper是 ...
- 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...
- 纯国产环境JAVA程序(Springboot + Mybatis + 达梦数据库)搭建
目录 JAVA程序搭建 前言 达梦数据库安装(WINDOWS) SpringBoot项目搭建 整合达梦数据库 源码 总结 JAVA程序搭建 前言 写在前面: 文章满满干货,每一步都是自己从零开始操作并 ...
- 商城项目(一)使用Spring boot + Mybatis搭建
Spring boot + Mybatis基础架构 环境搭建 mysql 8 mysql客户端连接工具 Valentina Studio springboot 版本:2.1.3.RELEASE Myb ...
- spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器
spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器 一.Mybatis plus代码自动生成器 1.引入配置 2.创建Controller 3.执行m ...
- spring boot+mybatis框架环境搭建
配置spring boot+mybatis框架环境搭建 一, spring boot 环境搭建 以下步骤为 1,新建maven工程 2.在pom文件中添加: spring-boot-starter-p ...
最新文章
- 外贸网站制作 网页的宽度多少为合适
- 33 多线程同步之Condition
- SVN中提交时提示副本被锁定,执行清理时也提示副本被锁定的解决办法
- Shell的一些基本用法
- 工控设备 如何将数据发送到串口_实现4G无线通信透传的远程通信多组网5个PLC相互交换数据...
- 《搜索算法——DFS、BFS、回溯》
- 程序员找工作那点事儿
- 启动FastDFS服务,使用python客户端对接fastdfs完成上传测试
- 信息学奥赛一本通 1965:【14NOIP普及组】珠心算测验 | 洛谷 P2141 [NOIP2014 普及组] 珠心算测验
- 算法:由0-5随机数设计0-8随机数
- FileUpload上传图片提示 “GDI+中发生一般性错误”
- 基于 Flink+Iceberg 构建企业级实时数据湖
- 099 元类( 控制对象产生和控制类产生)模板
- 【疫情模型】基于matlab SEIR模型疫情分析预测【含Matlab源码 666期】
- tableau的下载安装及简单使用
- noip2017提高组初赛(答案+选择题题目+个人分析)
- JS 模拟手机页面文件的下拉刷新
- SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-
- 电动汽车整车控制SIMULINK仿真
- 2010中国互联网哈哈榜1:十大网络流行语
热门文章
- IT行业热点商业模式随笔第七章——商业模式创新规律
- B3log Solo 0.2.5.1 发布了!
- 广域网智能流量调度—Vecloud
- 各种音频编码方式的对比
- 普通用户程序使用保留端口 error while loading shared libraries
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
- nginx 配置两个域名
- [转]HTTPS网络流量解密方法探索系列(一)
- mysql错误:this authentication plugin is not supported
- python之operator操作符函数