日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

springBoot+mybatisPlus小demo

發(fā)布時(shí)間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springBoot+mybatisPlus小demo 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目介紹:采用restful api進(jìn)行接口規(guī)范 / 項(xiàng)目框架SpringBoot+mybatis Plus / 采用mysql進(jìn)行數(shù)據(jù)存儲(chǔ) / 采用swaggerUI進(jìn)行前后端業(yè)務(wù)分離式開(kāi)發(fā)。

開(kāi)發(fā)環(huán)境:JDK1.8+Mysql8.0.12+IDEAL

實(shí)現(xiàn)功能:springboot搭建整體框架,MybatisPlus動(dòng)態(tài)生成Dao+Services+Entity+Controller結(jié)構(gòu)

項(xiàng)目介紹:無(wú)實(shí)際的業(yè)務(wù)操作,都是測(cè)試功能。其中為了區(qū)別mybastis和mybatisPlus,特意寫(xiě)了兩個(gè)接口分別采用mapper.xml進(jìn)行dao層操作和采用Iservice提供的CRUD操作進(jìn)行數(shù)據(jù)查詢。

ps:如果對(duì)springboot和mybayisPlus已了解,可直接訪問(wèn)碼云進(jìn)行demo下載 https://gitee.com/xc199534/SpringBootMybatisPlus/

----------------------------------------------------------分割線---------------------------------------------

1.項(xiàng)目整體結(jié)構(gòu)

其中Config中包括MybatisPlusConfig和SwaggerConfig兩個(gè)類,分別用于初始化MybatisPlus和Swagger基礎(chǔ)設(shè)置。

數(shù)據(jù)庫(kù)結(jié)構(gòu),采用navicat進(jìn)行可視化管理。

?

?

2.配置文件application.properties

也可采用.yml格式進(jìn)行配置文件設(shè)置,本項(xiàng)目是使用.properties。

spring.application.name=spring-boot-config server.port=8080 server.context-path=/#mybatis mapper文件的位置 mybatis.mapper-locations=classpath*:mapper/*.xml #掃描pojo類的位置,在此處指明掃描實(shí)體類的包,在mapper中就可以不用寫(xiě)pojo類的全路徑名了 mybatis.type-aliases-package=com.example.demo #可以通過(guò)mybatis.config-location屬性來(lái)指定mybatis的配置文件的位置, #mybatis.config-location=classpath:mybatis-config.xml
#數(shù)據(jù)庫(kù)參數(shù)設(shè)置 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內(nèi)容(所有不上項(xiàng)目完整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數(shù)據(jù)庫(kù)連接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><!-- mysql驅(qū)動(dòng) --><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.自動(dòng)生成代碼(Dao/service/Entity)

調(diào)用MpGenerator.java的主函數(shù)生成定義好MVC層結(jié)構(gòu)(MpGenerator定義了文件位置,文件名稱,依賴關(guān)系等屬性)。

Dao層:生成*Dao.java文件和*Dao.xml,后者可理解為Dao層的數(shù)據(jù)庫(kù)映射操作,mybatis支持在.xml文件中寫(xiě)數(shù)據(jù)庫(kù)CURD語(yǔ)句,但myatisPlus支持使用內(nèi)置的CRUD操作,避免了復(fù)雜的數(shù)據(jù)庫(kù)語(yǔ)句。

Service層 :生成一個(gè)接口文件,一個(gè)接口實(shí)現(xiàn)類。

Entity層:生成實(shí)體類,對(duì)應(yīng)到數(shù)據(jù)庫(kù)的表結(jié)構(gòu)。

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 = "測(cè)試")@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 = "插入數(shù)據(jù)")@ApiImplicitParam(name = "school", value = "學(xué)校信息", 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、調(diào)用主程序啟動(dòng)

@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);} }

?啟動(dòng)成功后訪問(wèn):http://localhost:8080/swagger-ui.html#/,顯示下圖效果即配置成功。

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiongchang95/p/9840164.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的springBoot+mybatisPlus小demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。