zoukankan      html  css  js  c++  java
  • springboot集成mybatisplus

    每天学习一点点 编程PDF电子书、视频教程免费下载: http://www.shitanlife.com/code

    介绍:

             Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。(摘自mybatis-plus官网)Mybatis虽然已经给我们提供了很大的方便,但它还是有不足之处,MP的存在就是为了稍稍弥补Mybatis的不足。在我们使用Mybatis时会发现,每当要写一个业务逻辑的时候都要在DAO层写一个方法,再对应一个SQL,即使是简单的条件查询、即使仅仅改变了一个条件都要在DAO层新增一个方法,针对这个问题,MP这样一个框架,一种集Mybatis与Hibernate的优点一起的框架。它提供了Hibernate的单表CURD操作的方便同时,又保留了Mybatis的特性。

    本章只教大家怎么使用MybatisPlus,如果想深入了解底层是怎么实现的可以去官网下载源代码进行解读。

    一、创建项目

      这里就不一步一步来了,我直接给出创建后的项目结构,在本章的最后我会给出源码地址需要看效果的可以进行下载。

    二、引入依赖

    复制代码
    <?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.chaoqi</groupId>
        <artifactId>springboot_mybatisplus</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>springboot_mybatisplus</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.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>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--添加jsp依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
            </dependency>
            <!-- SpringBoot - MyBatis 逆向工程 -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.2</version>
            </dependency>
    
            <!-- MyBatis 通用 Mapper -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>1.1.4</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                    <executions>
                        <execution>
                            <id>Generate MyBatis Artifacts</id>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.mybatis.generator</groupId>
                            <artifactId>mybatis-generator-core</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                        <dependency>
                            <groupId>tk.mybatis</groupId>
                            <artifactId>mapper</artifactId>
                            <version>3.5.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    
    
    </project>
    复制代码

     三、编辑application.yml

    复制代码
    server:
      port: 8080
    
    spring:
      mvc:
        view:
          prefix: /WEB-INF/jsp/
          suffix: .jsp
      datasource:
        url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false
        username: root
        password: 123456
        driver-class-name: com.mysql.jdbc.Driver
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.chaoqi.springboot_mybatisplus.domain
    复制代码

    四、逆向生成pojo,mapper

     创建generatorConfig.xml

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    
    <generatorConfiguration>
    
        <properties resource="application.yml"/>
        <classPathEntry location="D:/mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"/>
        <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
            <property name="beginningDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
            <property name="javaFileEncoding" value="UTF-8"/>
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
                <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
            </plugin>
            <!-- 注释 -->
            <commentGenerator>
                <!-- 是否生成注释代时间戳 -->
                <property name="suppressDate" value="true"/>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="false"/>
            </commentGenerator>
            <!-- JDBC连接 -->
            <jdbcConnection
                    driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"
                    userId="root"
                    password="123456">
            </jdbcConnection>
            <!-- 生成实体类地址 -->
            <javaModelGenerator targetPackage="com.chaoqi.springboot_mybatisplus.dao.domain" targetProject="src/main/java"/>
            <!-- 生成mapper xml文件 -->
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
            <!-- 生成mapper xml对应Client-->
            <javaClientGenerator targetPackage="com.chaoqi.springboot_mybatisplus.dao.mapper" targetProject="src/main/java"
                                 type="XMLMAPPER"/>
            <!-- 配置表信息 -->
            <table tableName="%">
                <!--mysql 配置-->
                <generatedKey column="id" sqlStatement="Mysql"/>
                <!--oracle 配置-->
                <!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>-->
            </table>
        </context>
    </generatorConfiguration>
    复制代码

    maven运行generator

    生成完后的项目结构如下

    五、整合mybatisplus

    创建service接口以及service实现类

    复制代码
    package com.chaoqi.springboot_mybatisplus.service;
    
    
    import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
    
    import java.util.List;
    
    public interface MusicInfoService {
    
        public List<MusicInfo> getMusicInfo();
    }
    复制代码
    复制代码
    package com.chaoqi.springboot_mybatisplus.service.impl;
    
    import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
    import com.chaoqi.springboot_mybatisplus.dao.mapper.MusicInfoMapper;
    import com.chaoqi.springboot_mybatisplus.service.MusicInfoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class MusicInfoServiceImpl implements MusicInfoService {
    
        @Autowired
        private MusicInfoMapper musicInfoMapper;
    
        @Override
        public List<MusicInfo> getMusicInfo() {
            List<MusicInfo> musicInfos = musicInfoMapper.selectAll();
            return musicInfos;
        }
    }
    复制代码

    创建Controller

    复制代码
    package com.chaoqi.springboot_mybatisplus.web;
    
    import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
    import com.chaoqi.springboot_mybatisplus.service.MusicInfoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    @RequestMapping(value = "/music")
    public class MusicInfoController {
    
        @Autowired
        private MusicInfoService musicInfoService;
    
        @RequestMapping("/showMusic")
        public List<MusicInfo> getMusicInfo() {
            List<MusicInfo> musicInfo1 = musicInfoService.getMusicInfo();
            return musicInfo1;
        }
    
    }
    复制代码

    这里我的mapper并不要写sql,一些简单的sqlmybatiplus都给封装好了,节省了许多开发时间,如果是一些复杂的sql,也可以通过写原生sql来实现,在我的第二篇博客中有讲到http://www.cnblogs.com/caichaoqi/p/8580521.html

    运行SpringbootMybatisplusApplication主函数

    复制代码
    package com.chaoqi.springboot_mybatisplus;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.chaoqi.springboot_mybatisplus.dao.mapper")
    public class SpringbootMybatisplusApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootMybatisplusApplication.class, args);
        }
    }
    复制代码

    查看数据库

     下面给出mybatisplus封装的一些方法,这些方法具体怎么使用,感兴趣的小伙伴可以查看下源代码,mybatisplus还有一个强大的分页功能,如果有兴趣也可以去学习http://mp.baomidou.com

    (源码下载地址:https://github.com/caicahoqi/ChaoqiIsPrivateLibrary

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/scode2/p/8718553.html
Copyright © 2011-2022 走看看