自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

横竖撇折点

一笔一划,记录我的爬坑之路

  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 超好用的MyBatis 通用Mapper

项目简介https://gitee.com/yangkeller/mapper项目特点体积小,能量大jar 包 58Kb引入后即可实现 增删改查操作,包含条件查询、分页查询、数据统计、添加、删除、修改等功能简单易用不需要书写Mapper代码不需要复杂配置引入 jar包,实体类添加注解,即可使用快速高效内部设置了缓存,同一张数据表只解析一次,代码执行效率高简化你的代码,让你的搬砖效率大幅提高开放源代码可以在此基础上自由发挥目录结构mybatis

2021-06-22 11:59:16 366

原创 实现鸿蒙OS JavaUI 的 ElementUI 风格化

项目介绍对 HarmonyOS 应用 Java UI 框架进行封装,使其可以作为一套符合 Element UI 风格的组件,在各种项目中使用。https://github.com/tianlanlandelan/HarmonyOS-Java-ElementUI项目特点全部组件及布局使用 Java 代码创建,不依赖 xml 布局文件对 Java UI 组件及布局进行了统一封装,调用简单,使用灵活添加了 Ability 的模板方法,可以快速创建风格统一的 Ability目录结构compo

2021-06-17 12:07:28 714 1

原创 导读

前言 For what本专栏为广大开发者量身打造,带你进行一次 Spring Boot + MyBatis + Vue + Element 全栈工程师的项目开发实战,选用当下主流的技术,带你从零开始实现一个完整的云笔记应用,实现前端、后端、数据库设计与开发流程。本专栏的每篇文章都有对应的完整代码,在 GitHub 上托管。大家可以参考项目的代码风格规范自己的书写习惯,可以从中学习到合适的技术知...

2020-09-22 11:52:50 353

原创 需求分析:明确项目目标及产品功能树

前言本专栏开设的目的是通过一个完整的项目开发过程来带领大家掌握前端、后端、数据库等各个模块的核心开发知识。在学习之前,重要的是选择一个合适的项目。本专栏选择了一个云笔记项目,命名为 Keller 云笔记,具体要需要什么功能呢?无论项目大小,在动工之前,都是已经有了明确的目标,这个目标不是凭空想象的,需要经过一系列的分析与判断。百度百科上对项目需求分析做如下描述: 需求分析是指理解用户需求...

2020-09-22 11:52:48 2469

原创 数据库设计:透过现象看本质

前言需求分析完成后就确定了产品的功能结构,在此基础上进行数据库设计,将每个具体的功能数据化,为接口文档的设计和代码设计做铺垫,本篇将带领大家完成 Keler 云笔记项目的数据库设计。设计原则 For what数据是所有业务的基础,没有数据,业务也就没法进行下去了;数据更是业务的灵魂,所有的业务操作都是为了得到期望的数据,没有了数据,业务操作也就没有了意义。因此在编写代码前,需要先将数据设计完...

2020-09-22 11:52:47 292

原创 接口文档设计:从不同角度进行功能分析

前言开发过程的前后端分离是基于在约定好的接口文档的基础之上的,也就是说:接口文档是服务端开发和前端开发的指导性文件,而完成前面的需求分析和数据库设计就是为了合理高效地设计好接口文档。完成了需求分析和数据库设计,就可以参照功能树和数据结构来设计接口文档了。本篇带领大家对 Keller 云笔记项目的接口文档做初步的设计。设计原则在需求分析和数据库设计完成的基础上设计出的接口文档也并不能达到完美...

2020-09-22 11:52:45 297

原创 前端架构选择及环境搭建

前言有了接口文档以后,我们就可以开始选择合适的前后端架构来准备正式开发项目。本篇带着大家选择合适的前端架构并搭建起前端开发环境。知识准备在搭建前端架构前,我们先来了解一下这几个概念:Vue.js、Node.js(Vue.js 运行的环境)、Vue CLI(Vue.js 开发的标准工具)。Vue.jsVue.js 官网上是这么描述的: Vue(读音 /vjuː/,类似于 view)是...

2020-09-22 11:52:44 244

原创 后端架构选择及环境搭建

前言上一篇我们搭建起了项目的前端开发环境,本篇将搭建起后端开发环境,搭建完毕后,我们就可以愉快地写代码了。关键词Keller 云笔记项目的后端采用 Spring Boot + MyBatis + RESTful 的架构,接口测试使用 Postman。正式进入本篇内容学习之前,先来了解一下这几个概念。Spring Boot官网上对 Spring Boot 做如下描述: Spring ...

2020-09-22 11:52:42 245

原创 MyBatis 通用 Mapper

前言上一篇,我们完成了 Spring Boot + MyBatis 项目的搭建,本篇将对 MyBatis 做深度的解析,构建自己的 MyBatis 工具类,为快捷高效的代码开发做准备。现状分析从这一篇开始正式写代码,按照既定的接口文档和数据库设计文档实现相应的业务逻辑。那么是不是接到开发任务就要赶紧写业务代码呢?在实际开发项目时切忌闷头苦干,要思考如何快速高效地完成任务,一个资深程序员往往...

2020-09-22 11:52:40 819

原创 MyBatis 自动建表

前言上一篇我们完成了 MyBatis 通用 Mapper 的开发,在掌握了 Java 反射、泛型机制后,发现我们能做的远远不止于此……现状分析使用通用 Mapper 能节省大量的 SQL 书写时间,能满足开发过程中对于持久层大多数的需求。但是作为一个全栈开发工程师,目标不仅仅于此。工作中,往往需要自己设计数据表,写实体类;修改数据表,修改实体类,总感觉花费很多时间在这样重复的事情上。如果你...

2020-09-22 11:52:39 1202

原创 统一的 HTTP 应答

问题引入现状分析经过前两篇的准备工作,我们有了属于自己的 MyBatis 工具包,接下来进入业务功能开发流程。回顾我们的第一个接口,也就是在第 6 篇《后端架构选择及环境搭建》中,在 UserController 类中写了用以验证 Spring Boot + MyBatis 环境是否运行正常以及 RESTful 的测试接口,代码如下: @GetMapping publi...

2020-09-22 11:52:37 152

原创 统一的 HTTP 请求处理

问题引入现状分析统一了接口的应答格式,那么需不需要对请求做统一的处理呢?这个问题需要从以下几个方面进行分析:代码重复性:接口文档中大多数接口都需要用户上传 Token 进行身份校验,是否每个接口都要处理 Token 参数?安全性:所有的接口方法都对外开放会不会有安全性问题?需不需要将一部分接口对外隔离,仅限内部访问?可扩展性:现在服务端架构发展的趋势是微服务,如果项目需...

2020-09-22 11:52:36 393

原创 注册 1:Java 发送邮件

前言经过前面 10 篇的学习,我们按照课程的整体介绍—需求分析—文档设计—架构选择—效率提升的思路,带大家完成了实际项目开发前的准备工作。从本篇起,正式进入业务代码开发阶段。在这个阶段要特别注意:本项目完全按照实际开发流程实现,在业务代码编写过程中要紧密结合需求分析、数据库设计、接口文档设计,不能未经沟通擅自修改接口文档、设计方案等。本课程后续的内容与前面的需求分析、数据库设计、接口文档...

2020-09-22 11:52:34 358

原创 注册 2:Axios 发送 HTTP 请求

前言在前后端分离模式开发中,前端开发主要依据的是接口文档,本篇带领大家按照接口文档完成注册功能的开发。由于是首次进行业务功能开发,需要先配置好项目必须的组件:路由管理、界面 UI、Ajax 请求等。知识准备Vue RouterVue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌,本项目中使用它来完成路由的管理功能。嵌...

2020-09-22 11:52:33 182

原创 登录 1:JWT 身份验证

前言用户注册成功后,就可以登录了,在本项目中可以使用两种登录方式:账号密码登录和邮件验证码登录。登录之后会生成一个 JWT,也就是用户 Token,后续所有的访问操作都是由 Token 进行控制的。本篇带领大家实现邮件验证码登录的流程,掌握 JWT 的生成与解析方法。知识准备JWTJWT 全称是:Json Web Token,是一种基于 JSON 的开发标准,为了再网络应用环境间相互传递,...

2020-09-22 11:52:31 260

原创 登录 2:HTTPS 安全传输

前言上一篇我们完成了 JWT 的生成与解析功能,并在此基础上完成了两种不同的登录接口。服务端登录成功后将 JWT 发送给客户端,供其后续访问使用。那么发送给客户端的过程中有没有风险呢?客户端收到 JWT 后该如何存储它呢?本篇带你解决这些问题,使 JWT 在客户端和服务端之间安全高效地发挥作用。知识准备HTML5 Web StorageHTML5 Web Storage 是 HTML5 的...

2020-09-22 11:52:30 508

原创 用户名片 1:图片上传与压缩

前言注册登录工作完成之后,就可以设置用户名片了,如昵称、头像、个人签名等信息。本篇带领大家实现用户名片的功能设计。知识准备MultipartFile用户名片中包含了头像信息,需要用到图片上传的功能,在 Spring Boot 项目中,普遍使用 MultipartFile 实现文件上传的功能。MultipartFile 接口在 org.springframework.web.multipa...

2020-09-22 11:52:28 185

原创 用户名片 2:Nginx 与图片深度解析

前言上一小节,我们实现了图片的上传及压缩功能,将上传好的图片存在在了指定目录中。本小节将带领大家搭建一个 Nginx 文件服务器,用来访问上传的文件,同时会补充一些图片信息解析的知识。知识准备本小节内容主要涉及到 Nginx 搭建文件服务器、图片信息的解析,因此,在学习之前,我们先了解一下相关的知识。NginxNginx 官网的介绍如下: NGINX is an open sour...

2020-09-22 11:52:26 979

原创 用户名片 3:页面实现

前言通过前两篇的学习,我们实现了用户名片的设置和读取功能,其中包括图片的上传、压缩及存储在 Nginx 服务器上。本篇我们将在前端实现用户名片的设置和读取,并在不同的场景中分别获取头像的缩略图和原图。知识准备本篇内容主要是页面的布局,主要涉及到了 Vue 的生命周期以及 Element UI 中的组件,在学习前,先给大家做下简单介绍。Vue 生命周:Vue 对象从创建到销毁的全过程,其中...

2020-09-22 11:52:25 395

原创 重置密码:两种场景三种方式

前言注册、登录、用户名片功能完成之后,与用户信息相关的操作还剩一个重置密码。本篇我们分析一下重置密码的不同场景和方法,并通过代码实现。知识准备本篇主要介绍,如何通过发送一封带有链接的邮件的方式完成重置密码功能。涉及到了 Vue 的动态路由机制。Vue Router 动态路由匹配动态路由匹配就像是将路由声明成了一个带有参数的函数,带有不同后缀路由都能访问到统一个页面,并且能在页面中获取到要...

2020-09-22 11:52:23 1223

原创 笔记本列表:Vue 组件

前言经过第 3 部分(7 到 18 篇)的开发工作,项目核心架构已经搭建完毕,尤其是服务端的架构已经可以实现新功能的快速实现,能节省大量服务端开发时间。第 4 部分(19 到 24 篇)的内容偏重于前端开发的讲解,知识点也大多集中在 Vue.js 及其生态上。接下来的内容,我们将完成该项目的业务代码开发工作。本篇,将完成用户笔记本列表的操作。知识准备上一篇实现了用户名片的页面布局,在内容区...

2020-09-22 11:52:21 150

原创 笔记列表:Draggable 拖拽排序

前言通过上一篇的学习,大家对于 Vue 组件化有了一定的了解。本篇继续使用组件化的思想来实现笔记列表,同时在组件化的基础上,对笔记列表实现拖拽排序的功能。知识准备学习之前,先来了解一下 Vue 中完成拖拽排序功能的组件:vue.Draggable。vue.Draggable官网是这样介绍该组件的: Vue component (Vue.js 2.0) or directive (V...

2020-09-22 11:52:20 547

原创 富文本笔记:WangEditor.md

前言通过前面两篇的学习,我们实现了在用户主页显示用户笔记本列表,并且在每次选中新的笔记本时展示笔记本中的笔记。接下来,我们将展示并编辑用户的笔记,本篇将实现富文本类型的笔记的编辑和展示功能。知识准备编辑富文本笔记,就需要了解一下支持 Vue.js 的富文本笔记组件。百度一下、Google 一下都能发现很多优秀的编辑器,这些编辑器各有特点,基本使用方法是类似的:加载组件设置内容处理图片...

2020-09-22 11:52:19 748

原创 MarkDown 笔记:MavonEditor

前言Keller 云笔记支持的笔记格式有两种:富文本笔记和 MarkDown 笔记,上一节我们实现了富文本笔记的编辑和展示,本小节,我们将实现 MarkDown 笔记的编辑和展示。知识准备编辑 MarkDown 笔记,推荐大家使用 mavon-editor 编辑器:简洁、易用、完全支持 Vue.js。mavon-editor认识 mavon-editor 从它的使用效果开始:从图中可...

2020-09-22 11:52:17 386

原创 项目部署

前言经过前面章节的学习,云笔记项目用户界面基本搭建完毕,实现了注册、登录、设置名片、笔记本操作、笔记操作等功能。本小节,我们学习项目的部署,先将已完成的部分部署到服务器上,并解决部署过程中的各种问题。服务器准备把项目部署在服务器上,需要做一些准备工作:首先,要在服务器上搭建起项目运行所需的环境,运行环境和开发环境保持一致就行;其次,要保证项目运行的端口能正常访问。运行环境“Kel...

2020-09-22 11:52:16 210

原创 存储空间优化

前言上一篇,我们实现了项目的部署,当部署完毕后,我们会发现云服务器的空间是有限的。本篇,我们将针对云服务器内存小、硬盘小的问题,对项目使用的存储空间进行优化,完成优化后,我们将继续开始管理员功能的开发。内存优化Keller 云笔记项目进行到现在,还没有到缓存和 Redis,Spring Boot、Vue.js 项目运行过程总占用的内存是比较固定的,暂时不用控制,需要注意的是 MySQL 使用...

2020-09-22 11:52:14 412

原创 用户管理 1:模糊查询及分页查询

前言上一篇我们完成了对服务器存储空间的优化,本篇开始,进入后台管理功能开发阶段。本篇重点带领大家实现 MyBatis 的分页查询和自定义查询功能,同时对 MyBatis 通用 Mapper 中现存的一些问题给予修正。功能分析通常,后台管理系统中常用到分页查询及模糊查询。要求有接口权限限制,避免非管理员用户访问到仅管理员可以访问的接口。本专栏前面花费了 6 篇内容带领大家搭建起 Keller ...

2020-09-22 11:52:13 591

原创 用户管理 2:生成 Excel 文件

前言用户管理的服务端功能准备完毕后,就可以实现 Web 端的效果了。本篇带领大家实现用户管理功能的页面展示及将用户数据导出成 Excel 文件。知识准备本篇涉及到的新知识点为在页面上导出 Excel,这里用到了 vue-json-excel 组件。vue-json-excelvue-json-excel 文档地址: https://www.npmjs.com/package/vu...

2020-09-22 11:52:11 101

原创 添加日志记录

前言​前面两篇我们实现了基础的用户管理功能,并实现了将用户信息导出为 Excel 文件的功能。在常用的后台管理系统中除了用户管理和其他功能管理模块外,比较重要的就是数据的统计了,如:日活跃用户数、日增长用户数、系统健康状态等。而实现这些功能的基础就是相应的日志记录,本篇以用户登录日志为例,带领大家实现日志的记录和查询。功能分析​日志记录功能在业务逻辑和流程设计上都比较简单,主要分为记录日志和...

2020-09-22 11:52:10 250

原创 生成图表

前言​上一篇我们添加了日志记录,并实现了简单的日志统计功能。在实际使用中,往往需要对比一段时间能的用户增长情况及用户活跃度,这些数据以图表的形式进行展现会更直观。知识准备ECharts​ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11、Chrome、Firefox、Safari 等)、底...

2020-09-22 11:52:08 155

原创 权限控制与异常处理

前言项目进行至此,基本的用户功能和管理员功能已经具备,只要做好权限控制,就是一个完整的项目了。本篇将带领大家完成项目的权限控制和全局异常处理。代码结构本篇设计到的代码如下:MyInterceptor.java:自定义的拦截器,用于进行权限校验,并记录非法请求日志WebMvcConfig.java:Spring Boot 配置类,用于配置拦截器entityErrorLog.java:...

2020-09-22 11:52:06 380

原创 分布式部署(下篇)

前言代理服务和用户服务搭建完毕后,我们继续搭建剩下的服务:笔记服务和日志服务。笔记服务 Note笔记服务负责与笔记本相关的所有业务逻辑处理,也就是本项目中的主要业务功能,在代码上基本不需要做修改,只用配置好 Consul 即可。代码结构controllerErrorController.java:全局异常处理NoteController.java:笔记接口NotesControl...

2020-09-22 11:52:05 101

原创 分布式部署(上篇)

前言经过前面的开发,KellerNotes 项目已经全部完成,作为个人及团队(500 人以下)的云笔记服务器使用是不成问题的。大家可以在此基础上增删功能,完成属于自己的云笔记。接下来我们进入收尾工作,讲些额外的知识,可以帮助大家了解项目的组件化开发、分布式部署。更正说明由于作者水平和眼界有限,在项目开发过程中用到的部分技术比较落后,感谢文涛同学的指出,在本篇的代码中已作出更新,具体如下:...

2020-09-22 11:52:03 192

原创 分布式部署(中篇)

前言准备好 common 后,就可以分别搭建项目的各个服务了,本篇带领大家搭建 Proxy 和 User 服务。代理服务 Proxy代码结构configRabbitConfig.java:RabbitMQ 配置类,定义了每个消息队列的名称controllerAdminController.java:管理员接口转发ApiController.java:普通用户接口转发BaseC...

2020-09-22 11:52:02 72

原创 Another Redis DeskTop Manager:一款可视化的Redis管理工具

“Another Redis DeskTop Manager 是 GitHub 上的一个开源项目,是 Redis 可视化管理的利器,提供在 Windows、MacOS 平台的安装包,体积小,完全免费。”之前因为开发的需要,在笔记本上安装了 Redis,一直按照在 Linux 服务器上的使用习惯去管理,偶然间在 GitHub 上发现了这个项目,体验还是很 Nice 的,类似于使用 MySQL 时安装 Navicat。01—使用效果该工具运行界面如下:...

2020-06-21 11:41:37 41444 5

原创 Visualizations:一个数据结构和算法的可视化展示网站

“ 美国旧金山大学计算机科学系网站里,提供了演示多种数据结构和算法的可视化演示,可以自由访问,也可以打包下载到本地。”偶然的机会,发现了这个网站,里面有常用的数据结构与算法的演示:栈、队列、二叉树、红黑树、B树、拓扑排序、广度优先算法……01—演示效果好不好用先看效果,在网页上选择红黑树,手动操作,观察它的 Insert 过程:Red/Black Tree Insert 操作过程演示动画速度和页面大小时可调节的,体验效果 100 分。...

2020-06-21 11:38:13 692

原创 一款开源的轻量级MyBatis通用Mapper

“这是一款轻量级的MyBatis插件,在GitHub上发布的有打好的jar包,25.2Kb,导入项目中即可使用,支持创建数据表、自定义查询、分页查询等常用的数据库操作。”​工欲善其事必先利其器,在项目开发过程中一款顺手的 MyBatis 插件是必要的。对比当下不同的插件,最终选择了这一款轻量级的开源项目。代码简洁易懂,可高度定制化开发,将 Java 的反射机制与泛型机制使用得淋漓尽致,是工作和学习过程中不可多得的一款利器。01...

2020-06-21 11:35:37 195

原创 Java Spring Boot 代码生成器

项目目标避免重复性工作使用 Spring MVC、Spring Boot、Spring Cloud 都不可避免的会用到 entity、mapper/dao、service、controller 层代码的设计,各种业务代码在结构上都是十分相近的。比如我们写一个权限管理系统,用户管理模块由 User.java、UserDao.java、UserService.java、UserContro...

2020-04-17 09:40:27 282

原创 Html 5 、Android、iOS 全平台的斗地主游戏全程讲解

前言:本来定这个主题的时候,想着写个三五页也就好了,一个没刹住车,巴拉巴拉写了一大堆。预览地址:http://132.232.2.225/本文从一个 HTML5 游戏引擎 Egret 开始谈起,从 Egret 项目的搭建到它选用的语言,到游戏的核心逻辑及设计思路,再到游戏的界面开发,最后讲一下游戏的打包发布。简单整理一下,在这里做个目录。一、项目简介:介绍项目运行方式和运行效果 二...

2020-04-17 09:30:23 2683 2

原创 Spring Boot + MyBatis + Vue.js + Element UI 全栈开发实战

2013 年的时候,我们班同学们一行 8 个人,拉着行李箱,从学校来到北京,开始了漫长的北漂生活。我们学的是计算机技术与应用专业,找工作的方向就是 DBA、前端开发工程师、Java 开发工程师之类的。最开始的两年,工资不是很高,大家就住在回龙观整租的一套三居室里。慢慢的,收入也高了点,大多数人也有了对象,就各自分开租房了。原本以为,随着各自工作的发展,我们之间的联系会变少,没想到,近几年,我们...

2020-04-17 09:15:25 930

kellerMapper.jar

这是一款轻量级的MyBatis插件,在GitHub上发布的有打好的jar包,25.2Kb,导入项目中即可使用,支持创建数据表、自定义查询、分页查询等常用的数据库操作。 依赖包 <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies> 目录结构 mybatis:MyBatis 通用 Mapper 相关 annotation:注解相关 FieldAttribute.java:字段注解,标示成员变量为数据库字段,并设置相应的约束信息,如:长度、非空、查询字段、索引字段等 KeyAttribute.java:主键注解,标示成员变量为主键,支持标注为自增主键 SortAttribute.java:排序注解,标示成员变量为排序字段 TableAttribute.java:数据表注解,标示实体类对应的表名称、说明信息 provider:Sql 语句生成相关 BaseCreateProvider.java:数据表创建语句的生成器,支持生成索引 BaseDeleteProvider.java:delete 语句生成器,支持根据 ID、主键、自定义条件删除 BaseInsertProvider.java:insert 语句生成器,支持自增主键的 insert 操作 BaseSelectProvider.java:select 语句生成器,支持分页查询、统计查询、自定义条件查询等 BaseUpdateProvider.java:update 语句生成器,支持根据 ID、主键修改数据 BaseEntity.java:所有实体类的父类,提供了自定义查询条件、分页查询、排序的扩展 BaseException.java:自定义异常,在通用 Mapper 运行过程中抛出的异常 BaseMapper.java:所有 Mapper 的父类,提供了通用 Mapper 功能 SqlFieldReader.java:Sql 字段解析类,用于解析实体类中的自定义注解,为生成 Sql 语句服务 TypeCaster.java:类型转换,用于将 Java 中的数据类型转换成相应的 MySql 数据类型 util:工具类相关 Console.java:日志输出工具类,用于在控制台、日志文件中输出相关信息 ObjectUtils.java:Object 工具类,用于对象的空值判断 StringUtils.java:字符串工具类,用于生成指定格式的字符串及对字符串进行各种处理 使用方式 实体类继承 BaseEntity 并使用注解 @TableAttribute(name = "user_info",comment = "用户信息表") public class UserInfo extends BaseEntity { // 标注是自增主键 @KeyAttribute(autoIncr = true) // 标注是数据库字段 @FieldAttribute private int id; // 设置字段注释、非空约束、作为查询条件 @FieldAttribute(value = "用户类型",notNull = true,isCondition = true) private Integer type; @FieldAttribute(value = "密码",length = 200, isDetailed = true) private String password; // 设置字段注释、非空约束、字段长度、是索引字段 @FieldAttribute(value = "邮箱",notNull = true,length = 200,isIndex = true) private String email; @FieldAttribute @SortAttrtibute private Date createTime = new Date(); @FieldAttribute(value = "用户账号状态",isCondition = true) private Integer status ; @FieldAttribute(value = "是否删除,1 表示删除",isCondition = true) private Integer isDelete; ... ... } Dao 层继承 BaseMapper @Mapper public interface UserMapper extends BaseMapper<UserInfo> { } 调用 /** * 根据类型和邮箱查询用户 * @param type * @param email * @return */ private UserInfo getByEmailAndType(int type,String email){ UserInfo userInfo = new UserInfo(); // 设置查询条件1 Email userInfo.setEmail(email); // 设置查询条件2 Type userInfo.setType(type); // 设置使用 And 连接多个查询条件 userInfo.setBaseKyleUseAnd(true); // 执行查询并返回结果 List<UserInfo> list = userMapper.baseSelectList(userInfo); if(list != null && list.size() > 0){ return list.get(0); } return null; }

2020-06-21

Spring Boot 代码生成器

自己写的非常好用的Java代码生成器,用于生成 RESTful 风格的 Controller、Service、Dao、Entity 层代码。 提供的源码简单明了,可以直接使用,方便快捷生成你的项目代码,避免繁琐的基础代码设计;也可以快速修改,生成你自己的代码风格。详细教程参考地址:https://gitbook.cn/new/gitchat/activity/5c68a42b3f0d0d43168e85cc

2020-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除