项目介绍:采用restful api进行接口规范 / 项目框架SpringBoot+mybatis Plus / 采用mysql进行数据存储 / 采用swaggerUI进行前后端业务分离式开发。

开发环境:JDK1.8+Mysql8.0.12+IDEAL

实现功能:springboot搭建整体框架,MybatisPlus动态生成Dao+Services+Entity+Controller结构

项目介绍:无实际的业务操作,都是测试功能。其中为了区别mybastis和mybatisPlus,特意写了两个接口分别采用mapper.xml进行dao层操作和采用Iservice提供的CRUD操作进行数据查询。

ps:如果对springboot和mybayisPlus已了解,可直接访问码云进行demo下载 https://gitee.com/xc199534/SpringBootMybatisPlus/

----------------------------------------------------------分割线---------------------------------------------

1.项目整体结构

其中Config中包括MybatisPlusConfig和SwaggerConfig两个类,分别用于初始化MybatisPlus和Swagger基础设置。

数据库结构,采用navicat进行可视化管理。

2.配置文件application.properties

也可采用.yml格式进行配置文件设置,本项目是使用.properties。

spring.application.name=spring-boot-config
server.port=8080
server.context-path=/#mybatis mapper文件的位置
mybatis.mapper-locations=classpath*:mapper/*.xml
#扫描pojo类的位置,在此处指明扫描实体类的包,在mapper中就可以不用写pojo类的全路径名了
mybatis.type-aliases-package=com.example.demo
#可以通过mybatis.config-location属性来指定mybatis的配置文件的位置,
#mybatis.config-location=classpath:mybatis-config.xml
#数据库参数设置
jdbc.type=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3.pom.xml内容(所有不上项目完整pom.xml的demo都是耍流氓)

<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><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><!-- <version>2.1.3</version>   --></dependency><dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><!-- <version>3.0.9</version> --></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><scope>provided</scope></dependency><!-- 阿里巴巴druid数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- mybatisplus与springboot整合 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>2.3</version></dependency><!-- 模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency><!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency></dependencies>

3.自动生成代码(Dao/service/Entity)

调用MpGenerator.java的主函数生成定义好MVC层结构(MpGenerator定义了文件位置,文件名称,依赖关系等属性)。

Dao层:生成*Dao.java文件和*Dao.xml,后者可理解为Dao层的数据库映射操作,mybatis支持在.xml文件中写数据库CURD语句,但myatisPlus支持使用内置的CRUD操作,避免了复杂的数据库语句。

Service层 :生成一个接口文件,一个接口实现类。

Entity层:生成实体类,对应到数据库的表结构。

SchoolDao.java

package com.example.demo.dao;import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.example.demo.entity.School;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;public interface SchoolDao extends BaseMapper<School> {School getSchoolById(@Param("id") int id);
}

View Code

SchoolService.java

import com.baomidou.mybatisplus.service.IService;
import com.example.demo.entity.School;
import org.elasticsearch.index.query.QueryStringQueryBuilder;public interface SchoolService extends IService<School> {public School getSchoolById(int id);// public Iterable<School> searchByES(QueryStringQueryBuilder builder);

}

View Code

SchoolServiceImpl.java

import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.example.demo.dao.SchoolDao;
import com.example.demo.entity.School;
import com.example.demo.services.SchoolService;
import org.elasticsearch.index.query.QueryStringQueryBuilder;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class SchoolServiceImpl extends ServiceImpl<SchoolDao, School> implements SchoolService {@Overridepublic School getSchoolById(int id) {return baseMapper.selectById(id);}
}

View Code

School.java

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.data.elasticsearch.annotations.Document;import java.io.Serializable;@TableName("school")
@Document(indexName = "education", type = "school")
public class School implements Serializable {@TableId("ID")private int id;@TableField("NAME")private String name;@TableField("RANGE")private int range;@TableField("AGE")private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getRange() { return range; }public void setRange(int range) { this.range = range; }public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "School{" +"id=" + id +", name='" + name +", range=" + range +", age=" + age +'}';}
}

View Code

4、Controller层

@RestController
@RequestMapping("/")
public class SampleController {@Autowiredprivate UserService userService;@Autowiredprivate SchoolService schoolService;@Autowiredprivate testDao testdao;@Autowiredprivate ElasticsearchTemplate elasticsearchTemplate;@ApiOperation(value = "测试")@GetMapping("/home")String home() {return "Hello World!";}@RequestMapping(value = "/getUser", method = RequestMethod.GET)public User helloUser() {User user = userService.getUserById(1);System.out.println(user);return user;}@ApiOperation(value = "采取mybatis方式查询")@ApiImplicitParam(name = "id", value = "用户id", paramType = "path", required = true)@GetMapping("/getSchool/maybatis/{id}")public School helloSchool1(@PathVariable("id") int id) {School school = schoolService.getSchoolById(id);System.out.println(school);return school;}@ApiOperation(value = "采取mybatis-plus方式查询")@ApiImplicitParam(name = "id", value = "用户id", paramType = "path", required = true)@GetMapping("/getSchool/maybatis-plus/{id}")public School helloSchool2(@PathVariable("id") int id) {School school = schoolService.selectById(id);System.out.println(school);return school;}@ApiOperation(value = "插入数据")@ApiImplicitParam(name = "school", value = "学校信息", paramType = "body", required = true)@PostMapping("/insert/school")public Boolean insertSchool(@RequestBody School school) {Boolean tag = schoolService.insert(school);System.out.println(tag);return tag;}
}

View Code

5、调用主程序启动

@SpringBootApplication
@MapperScan("com.example.demo.dao")
@ComponentScan(basePackages = {"com.example.demo.config","com.example.demo.controller","com.example.demo.services"})
public class DemoApplication {public static void main(String[] args) {//System.setProperty("es.set.netty.runtime.available.processors", "false");SpringApplication.run(DemoApplication.class, args);}
}

启动成功后访问:http://localhost:8080/swagger-ui.html#/,显示下图效果即配置成功。

转载于:https://www.cnblogs.com/xiongchang95/p/9840164.html

springBoot+mybatisPlus小demo相关推荐

  1. springboot+mybatis-plus实例demo

    大家好,我是雄雄,欢迎关注微信公众号[雄雄的小课堂]. 前言 故事还得从一次微信通话说起-- 一个夜深人静的晚上,正在电脑前看书,突然,放在旁边的手机响了起来,原来是一个朋友打的微信电话. " ...

  2. 1.IntelliJ IDEA搭建SpringBoot的小Demo

    转自:http://www.cnblogs.com/weizaibug/p/6657077.html 首先简单介绍下Spring Boot,来自度娘百科:Spring Boot是由Pivotal团队提 ...

  3. springboot mybatis easyui 整合的一个小demo

    springboot mybatis easyui 整合的一个小demo 这是最终完成界面 话不多说 开整! 这是项目结构 数据库 表结构和数据库 (有点乱 之前本来是个正经图书表的 = =.) /* ...

  4. STS安装配置及写的一个springboot整合mybatis的小demo

    新入职的猿,师傅给了一个小任务,用STS写一个springboot整合mybatis的小demo.由于之前没用过STS和eclipse,所以听到这个任务还是比较懵逼的,经过一天的摸索,慢慢的摸出了门道 ...

  5. springboot + Mybatis-plus

    这是一个springboot 和 layui的小demo(单体应用) 第一步:创建数据库 -- MySQL dump 10.13 Distrib 8.0.19, for Win64 (x86_64) ...

  6. Springboot+MyBatis-plus+postgresSQL 的整合

    https://blog.csdn.net/xuxiannian/article/details/99625085 Springboot+MyBatis-plus+postgresSQL 的整合 禛陌 ...

  7. springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成

    大家好,我是烤鸭: 今天分享一下 springboot mybatis-plus 和 druid 的yml 配置文件. pom <dependency><groupId>org ...

  8. vue和java实现页面增删改_SpringBoot-Vue实现增删改查及分页小DEMO

    前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...

  9. 快速搭建springboot+mybatis-plus代码自动生成器的后端框架

    利用springboot + mybatis-plus 代码自动生成器快速搭建后端框架 项目环境 IDEA 2020 springboot 2.3.7.RELEASE mybatis-plus 3.5 ...

最新文章

  1. 请注意更新TensorFlow 2.0的旧代码
  2. 超级实用sap table
  3. linux系统下开机启动流程
  4. MVC中Model BLL层Model模型互转
  5. 小红书推荐大数据在阿里云上的实践
  6. .net core razor ajax,.NET CORE Razor Pages Ajax 调用 C# 方法
  7. 两个字符串组成tuple_史上最全python字符串操作指南
  8. jemeter python接口自动化测试平台_python接口自动化测试之request
  9. 拳王虚拟项目公社:闲鱼操作虚拟资源的案例拆解,教你玩转闲鱼虚拟资源,货源+方法
  10. XWiki 4.4.1 发布,Java 的 Wiki 引擎
  11. mysql约束与索引的区别
  12. 手机管理服务器文件夹,手机管理服务器文件夹
  13. 监控系统 服务器配置,监控系统服务器配置
  14. Gstreamer 命令行
  15. MATLAB学习笔记 MATLAB仿PhotoShop油画/毛玻璃/漩涡/锥形等特效
  16. spire.doc操作word文档工具类(自用)
  17. VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB
  18. 华为南研所2014春季机试题目-1字符串拼接
  19. 门户通专访学生站长杨瑨:做站要有超前思维
  20. java唯一的id_Java:唯一的10位数ID

热门文章

  1. Gompertz模型绘图 matlab,Logistic模型matlab求解
  2. Android日志[进阶篇]一-使用 Logcat 写入和查看日志
  3. linux qt yuv,c – 如何使用Qt中的RGBA32数据将带有YUV数据...
  4. mysql --max_allowed_packet=32m,如何修改MySQL-max_allowed_packet
  5. thinkphp mysql exp_thinkphp备份数据库的方法分享
  6. Java集合 Collection
  7. linux 目录定义,linux根目录定义
  8. java义一个方法,返回一组双色球票数
  9. java表格的创建_Java创建表格实例详解 原创
  10. c语言long a什么意思啊,英文long的中文是什么意思