SpringBoot整合Mybatis-Plus
這篇文章介紹一個SpringBoot整合Mybatis-Plus,提供一個小的Demo供大家參考。
已經很久沒有寫文章了,最近家裡有點事剛剛處理完,順便也趁機休息了一段時間。剛回到公司看了一下碼雲,發現本期碼雲封面人員就是Mybatis-Plus團隊苞米豆的負責人,如下圖。
忽然想到,正好之前別人跟我說過怎麼不出一個SpringBoot整合Mybatis-Plus的,已經很久的事了,正好想起來,這次就弄一個整合的Demo。
言歸正傳,新建一個專案。pom檔案中加入Mybatis依賴,完整pom如下:
4.0.0 com.dalaoyang springboot_mybatisplus 0.0.1-SNAPSHOT jar springboot_mybatisplus springboot_mybatisplus org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE <!-- lookup parent from repository -->UTF-8 UTF-8 1.8 com.baomidou mybatisplus-spring-boot-starter 1.0.5 com.baomidou mybatis-plus 2.3 org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.1 org.springframework.boot spring-boot-devtools runtime mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin
配置檔案配置資料庫配置和對應Mybatis-Plus實體資訊,配置如下:
##埠號
server.port=8888
##資料庫url
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false
##資料庫使用者名稱
spring.datasource.username=root
##資料庫密碼
spring.datasource.password=root
##資料庫驅動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
##日誌級別
logging.level.com.dalaoyang.dao.UserMapper=debug
##mybatis-plus mapper xml 檔案地址
mybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml
##mybatis-plus type-aliases 檔案地址
mybatis-plus.type-aliases-package=com.dalaoyang.entity
實體類User程式碼如下:
package com.dalaoyang.entity;
/**
* @author dalaoyang
* @Description
* @project springboot_learn
* @package com.dalaoyang.entity
* @email yangyang@dalaoyang.cn
* @date 2018/7/20
*/
public class User {
private int id;
private String user_name;
private String user_password;
public User() {
}
public User(String user_name, String user_password) {
this.user_name = user_name;
this.user_password = user_password;
}
public User(int id, String user_name, String user_password) {
this.id = id;
this.user_name = user_name;
this.user_password = user_password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
}
下面要說的都是需要注意的地方,新增一個MybatisPlus配置類,其中沒有做過多的設定,只是設定了一下方言,程式碼如下:
package com.dalaoyang.config;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author dalaoyang
* @Description
* @project springboot_learn
* @package com.dalaoyang.config
* @email yangyang@dalaoyang.cn
* @date 2018/7/20
*/
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor page = new PaginationInterceptor();
//設定方言型別
page.setDialectType("mysql");
return page;
}
}
UserMapper繼承了MybatisPlus的BaseMapper,這裡面列舉一個普通的查詢方法getUserList,完整程式碼如下:
package com.dalaoyang.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.dalaoyang.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author dalaoyang
* @Description
* @project springboot_learn
* @package com.dalaoyang.dao
* @email yangyang@dalaoyang.cn
* @date 2018/7/20
*/
@Mapper
public interface UserMapper extends BaseMapper {
List getUserList();
}
新建一個UserMapper.xml,裡面寫getUserList對應sql,程式碼如下:
最後和往常一樣,新建一個Controller進行測試,完整程式碼如下:
package com.dalaoyang.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.dalaoyang.dao.UserMapper;
import com.dalaoyang.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author dalaoyang
* @Description
* @project springboot_learn
* @package com.dalaoyang.controller
* @email yangyang@dalaoyang.cn
* @date 2018/7/20
*/
@RestController
public class UserController {
@Autowired
private UserMapper userDao;
//
@GetMapping("getUserList")
public List getUserList(){
return userDao.getUserList();
}
//ByName?userName=xiaoli
//條件查詢
@GetMapping("getUserListByName")
public List getUserListByName(String userName)
{
Map map = new HashMap();
map.put("user_name", userName);
return userDao.selectByMap(map);
}
//
//儲存使用者
@GetMapping("saveUser")
public String saveUser(String userName,String userPassword)
{
User user = new User(userName,userPassword);
Integer index = userDao.insert(user);
if(index>0){
return "新增使用者成功。";
}else{
return "新增使用者失敗。";
}
}
//
//修改使用者
@GetMapping("updateUser")
public String updateUser(Integer id,String userName,String userPassword)
{
User user = new User(id,userName,userPassword);
Integer index = userDao.updateById(user);
if(index>0){
return "修改使用者成功,影響行數"+index+"行。";
}else{
return "修改使用者失敗,影響行數"+index+"行。";
}
}
//
//根據Id查詢User
@GetMapping("getUserById")
public User getUserById(Integer userId)
{
return userDao.selectById(userId);
}
//ByPage?pageNumber=1&pageSize=2
//條件分頁查詢
@GetMapping("getUserListByPage")
public List getUserListByPage(Integer pageNumber,Integer pageSize)
{
Page page =new Page(pageNumber,pageSize);
EntityWrapper entityWrapper = new EntityWrapper();
entityWrapper.eq("user_name", "xiaoli");
return userDao.selectPage(page,entityWrapper);
}
}
這裡對上面程式碼稍作解釋,其中包含了如下幾個方法:
1.getUserList :這是普通的Mybatis查詢的方法,沒有用到Mybatis-Plus,這裡不做過多解釋。
2.getUserListByName:條件查詢,根據名稱查詢使用者列表,這裡使用到了selectByMap方法,引數需要傳一個Map,裡面對應寫好需要查詢的欄位名與對應查詢值。
3.saveUser :儲存使用者,這裡使用的是insert方法,需要傳一個實體物件,返回Integer值作為影響行數。
4.updateUser :修改使用者,這裡使用的是updateByIdt方法,需要傳一個實體物件,返回Integer值作為影響行數。
5.getUserById :根據Id查詢實體物件,需要傳使用者Id。
6.getUserListByPage :條件分頁查詢,使用的是selectPage方法,方法需要一個分頁物件Page和一個條件物件EntityWrapper。Page放入頁碼和每頁數量,EntityWrapper使用eq方法放入對應欄位名和對應查詢值。
這裡只是舉例說明幾個方法,其中方法還有很多,更多Mybatis-Plus使用請檢視官方文件:%E7%AE%80%E4%BB%8B
原始碼下載 :
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1343/viewspace-2810826/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringBoot整合系列–整合MyBatis-plusSpring BootMyBatis
- SpringBoot | 3.3 整合MyBatis-PlusSpring BootMyBatis
- SpringBoot整合Mybatis-Plus(SpringBoot3)Spring BootMyBatis
- SpringBoot系列——MyBatis-Plus整合封裝Spring BootMyBatis封裝
- Springboot整合Mybatis-plus(比較詳細)Spring BootMyBatis
- 記錄springboot 3.3.5 版本整合 mybatis-plusSpring BootMyBatis
- SpringBoot第七篇:整合Mybatis-PlusSpring BootMyBatis
- mybatis-plus整合springboot自動生成檔案MyBatisSpring Boot
- SpringBoot整合MyBatis-Plus框架(程式碼生成器)Spring BootMyBatis框架
- SpringBoot整合mybatis-plus,pagehelper以及程式碼自動生成Spring BootMyBatis
- SpringBoot中使用Mybatis-plus整合PageHelper分頁外掛踩坑Spring BootMyBatis
- springboot整合mybatis-plus啟動的時候出現propertyplacehlderAutoConfigurtionSpring BootMyBatis
- Spring Boot —— 整合 MyBatis-PlusSpring BootMyBatis
- 【Spring Boot】快速整合Mybatis-PlusSpring BootMyBatis
- SpringBoot學習筆記(十七:MyBatis-Plus )Spring Boot筆記MyBatis
- SpringBoot整合系列-整合JPASpring Boot
- MyBatis 進階,MyBatis-Plus!(基於 Springboot 演示)MyBatisSpring Boot
- SpringBoot 整合 rabbitmqSpring BootMQ
- SpringBoot 整合 elkSpring Boot
- SpringBoot 整合 elasticsearchSpring BootElasticsearch
- SpringBoot 整合 apolloSpring Boot
- springboot整合redis?Spring BootRedis
- SpringBoot整合RedisSpring BootRedis
- flowable 整合 springbootSpring Boot
- SpringBoot整合MQTTSpring BootMQQT
- ElasticSearch 整合 SpringBootElasticsearchSpring Boot
- SpringBoot整合ESSpring Boot
- Springboot整合pagehelperSpring Boot
- springBoot整合thymeleafSpring Boot
- SpringBoot 整合 RedisSpring BootRedis
- SpringBoot整合NacosSpring Boot
- SpringBoot 整合 dockerSpring BootDocker
- Springboot整合RabbitMQSpring BootMQ
- springBoot整合flowableSpring Boot
- Springboot整合MyabitsSpring Boot
- springBoot 整合 mybatisSpring BootMyBatis
- SpringBoot整合elasticsearchSpring BootElasticsearch
- Springboot整合MybatisSpring BootMyBatis