spring boot 整合mybatis-plus ssm框架

      前一段时间用ssm框架发现mybatis-plus比较热门,就利用spring boot项目整合mybatis-plus,发现非常实用。废话不多说,直接上代码。

目录

0.先给出整个项目的目录结构

1.pom文件

2. application.properties 配置文件

3.mybatisplusConfig配置

4. mapper.xml配置文件

5.controller控制层

6.service层

7.dao层

8.entity层


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.Driver

mybatis-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,可以实现基本的增删改查、分页以及批理,代码将会异常的简单,并可以在项目开发过程中节省大量的时间。

猜你喜欢

转载自blog.csdn.net/linjun20/article/details/82389051