前一段时间用ssm框架发现mybatis-plus比较热门,就利用spring boot项目整合mybatis-plus,发现非常实用。废话不多说,直接上代码。
目录
2. application.properties 配置文件
0.先给出整个项目的目录结构
1.pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion><groupId>com.lin</groupId>
<artifactId>mybatisPlusLearn</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging><name>mybatisPlusLearn</name>
<description>Demo project for Spring Boot</description><parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent><properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties><dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 阿里巴巴druid数据库连接池 -->
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 添加之后不用写 set和get方法 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies><build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. application.properties 配置文件
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/stsdemo
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Drivermybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml
mybatis-plus.type-aliases-package=com.lin.entity#控制台输出sql
mybatis-plus.configuration.log-impl=org.apche.ibatis.logging.stdout.StdOutImpl
#驼峰式实体字段自动映射为数据库下划线字段 如 aB 映射为 a_b
mybatis-plus.configuration.map-underscore-camel-case=true
3.mybatisplusConfig配置
package com.lin.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;@Configuration
@MapperScan(basePackages = "com.lin.dao")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor page = new PaginationInterceptor();
//设置方言类型
page.setDialectType("mysql");
return page;
}
}
4. mapper.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lin.dao.ProvinceMapper">
<resultMap id="province" type="Province"/>
</mapper>
5.controller控制层
package com.lin.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.lin.dao.ProvinceMapper;
import com.lin.entity.Province;
import com.lin.service.ProvinceService;@RestController
public class ProvinceController {
@Autowired
private ProvinceService provinceService;
@GetMapping("/name")
public Page<Province> get(){
Map map = new HashMap();
//map.put("name", "辽宁省");
//return provinceMapper.selectByMap(map);
Page<Province> page=new Page<Province>(1,10);
EntityWrapper<Province> ew=new EntityWrapper<>();
//ew.between("id", 1, 15);
ew.eq("city_name", "重庆市");
Page<Province> pages=provinceService.selectPage(new Page(1,10), ew);
return pages ;
}@GetMapping("/delete")
public void test() {
Page<Province> page=provinceService.selectPage(new Page<Province>(1,10),new EntityWrapper().like("city_name", "上海5"));
List<Province>list=page.getRecords();
List<Integer>ids=new ArrayList<Integer>();
for(Province pro:list) {
ids.add(pro.getId());
}
provinceService.deleteBatchIds(ids);
}
@GetMapping("/add")
public List<Province> batchAdd() {
List<Province>list=new ArrayList<Province>();
for(int i=55;i<60;i++) {
Province pro=new Province();
pro.setCityName("上海"+i);
list.add(pro);
}boolean flag=provinceService.insertBatch(list);
if(flag) {
return list;
}
return null;
}
@GetMapping("/insertOrUpdate")
public Province insertOrUpdate() {
Province pro=new Province();
pro.setCityName("上海"+100);
pro.setId(48);
boolean flag=provinceService.insertOrUpdate(pro);
if(flag) return pro;
return null;
}}
6.service层
package com.lin.service;
import java.util.List;
import com.baomidou.mybatisplus.service.IService;
import com.lin.entity.Province;public interface ProvinceService extends IService<Province> {
}
----
package com.lin.service;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.lin.dao.ProvinceMapper;
import com.lin.entity.Province;@Service
public class ProvinceServiceIpml extends ServiceImpl<ProvinceMapper,Province> implements ProvinceService {
}
7.dao层
package com.lin.dao;
import com.lin.entity.Province;
import com.baomidou.mybatisplus.mapper.BaseMapper;
public interface ProvinceMapper extends BaseMapper<Province> {
}
8.entity层
package com.lin.entity;
import lombok.Data;
@Data
public class Province {private int id;
private String cityName;
}
最后附上province的创建语句
DROP TABLE IF EXISTS `province`;
CREATE TABLE `province` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`city_name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8;
spring boot 整合mybatis-plus,可以实现基本的增删改查、分页以及批理,代码将会异常的简单,并可以在项目开发过程中节省大量的时间。