springboot集成mybatisplus实例详解

集成mybatisplus后,简单的CRUD就不用写了,如果没有特别的sql,就可以不用mapper的xml文件的。

目录

pom.xml文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.5.21.RELEASE</version>
  <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <groupId>com.xiaostudy</groupId>
 <artifactId>demo1</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>demo1</name>
 <description>Demo project for Spring Boot</description>
 <properties>
  <java.version>1.8</java.version>
 </properties>
 <dependencies>
  <!-- spring-boot -->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
  <!--mybatis-plus自动的维护了mybatis以及mybatis-spring的依赖,
  在springboot中这三者不能同时的出现,避免版本的冲突,表示:跳进过这个坑-->
  <dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.1.1</version>
  </dependency>
  <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.0.29</version>
  </dependency>
  <!-- 提供mysql驱动 -->
  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
  </dependency>
 </dependencies>
 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>
</project>

实体类User

package com.xiaostudy.demo1.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
@TableName("t_user")
public class User implements Serializable {
 private String id;
 private String userName;
 private String userPassword;
 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 public String getUserName() {
  return userName;
 }

 public void setUserName(String userName) {
  this.userName = userName;
 }

 public String getUserPassword() {
  return userPassword;
 }

 public void setUserPassword(String userPassword) {
  this.userPassword = userPassword;
 }
 @Override
 public String toString() {
  return "User{" +
    "id='" + id + '\'' +
    ", userName='" + userName + '\'' +
    ", userPassword='" + userPassword + '\'' +
    '}';
 }
}

Dao[也叫Mapper]

package com.xiaostudy.demo1.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaostudy.demo1.entity.User;
import org.springframework.stereotype.Repository;
/**
 * <p>
 * Mapper接口
 * </p>
 *
 * @author xiaostudy
 * @since 2019-09-15
 */
@Repository
public interface UserDao extends BaseMapper<User> {
}

Service

package com.xiaostudy.demo1.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaostudy.demo1.entity.User;
public interface UserService extends IService<User> {
}

Service实现类

package com.xiaostudy.demo1.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaostudy.demo1.entity.User;
import com.xiaostudy.demo1.mapper.UserDao;
import com.xiaostudy.demo1.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {
}

Controller

package com.xiaostudy.demo1.controller;
import com.xiaostudy.demo1.entity.User;
import com.xiaostudy.demo1.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
 @Autowired
 private UserService userService;
 @RequestMapping("/getAll")
 public String getAll() {
  List<User> list = userService.list();
  System.out.println("list:" + list);
  return list.toString();
 }
 @RequestMapping("/insert")
 public String insert() {
  User user = new User();
  // 不设置id的话,会自动生成一个UUID
//  user.setId(new Date().getTime() + "");
  user.setUserName("aaa");
  user.setUserPassword("bbb");
  boolean save = userService.save(user);
  return getAll();
 }
}

application-jdbc.yml

#数据源
spring:
 security:
 basic:
  enabled: false
 datasource:
 url: jdbc:mysql://127.0.0.1:3306/my_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
 username: root
 password: 密码
 driver-class-name: com.mysql.jdbc.Driver
 druid:
  # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
  initialSize: 1
  # 最小连接池数量
  minIdle: 1
  # 最大连接池数量
  maxActive: 10
  # 配置获取连接等待超时的时间
  maxWait: 10000
  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  timeBetweenEvictionRunsMillis: 60000
  # 配置一个连接在池中最小生存的时间,单位是毫秒
  minEvictableIdleTimeMillis: 300000
  # 验证连接有效与否的SQL,不同的数据配置不同
  validationQuery: select 1
  # 建议配置为true,不影响性能,并且保证安全性。
  # 申请连接的时候检测,如果空闲时间大于
  # timeBetweenEvictionRunsMillis,
  # 执行validationQuery检测连接是否有效。
  testWhileIdle: true
  # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
  # 这里建议配置为TRUE,防止取到的连接不可用
  testOnBorrow: true
  # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
  testOnReturn: false
  # 是否缓存preparedStatement,也就是PSCache。
  # PSCache对支持游标的数据库性能提升巨大,比如说oracle。
  # 在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
  # 作者在5.5版本中使用PSCache,通过监控界面发现PSCache有缓存命中率记录,
  # 该应该是支持PSCache。
  # 打开PSCache,并且指定每个连接上PSCache的大小
  poolPreparedStatements: true
  maxPoolPreparedStatementPerConnectionSize: 20
  # 属性类型是字符串,通过别名的方式配置扩展插件,
  # 常用的插件有:
  # 监控统计用的filter:stat
  # 日志用的filter:log4j
  # 防御sql注入的filter:wall
  filters: stat

# ====================MybatisPlus====================
mybatis-plus:
 # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
 # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
 mapper-locations: classpath*:com/frame/**/**.xml,classpath*:mapping/**/**.xml
 #实体扫描,多个package用逗号或者分号分隔
 typeAliasesPackage: com.frame.**.entity,com.frame.**.dto
 global-config:
 #刷新mapper 调试神器
 db-config:
  #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
  id-type: UUID
  #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
  field-strategy: 2
  #驼峰下划线转换
  column-underline: false
  #数据库大写下划线转换
#  capital-mode: true
  #逻辑删除配置
  logic-delete-value: 1
  logic-not-delete-value: 0
 refresh: true
 configuration:
 #配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
 map-underscore-to-camel-case: true
 cache-enabled: false
 #配置JdbcTypeForNull, oracle数据库必须配置
 jdbc-type-for-null: 'null'
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 database-id: mysql

application.yml

server:
 port: 8080

spring:
 profiles:
 include: jdbc

测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • springboot集成mybatisplus的方法

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

  • SpringBoot整合MybatisPlus的简单教程实现(简单整合)

    最近在研究springboot,顺便就会看看数据库连接这一块的知识 ,所以当我发现有通用Mapper和MybatisPlus这两款网络上比较火的简化mybatis开发的优秀软件之后.就都想试一下,看看哪一款比较适合自己. 先创建一个springboot的项目,可以参考我之前的文章Spring Boot 的简单教程(一) Spring Boot 项目的创建. 创建好springboot之后就需要整合mybatis和mybatis-plus了. 打开pom.xml文件,将最新的mybatis相关的包

  • SpringBoot Mybatis Plus公共字段自动填充功能

    一.应用场景 平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个字段有没有传进去,很麻烦.mybatisPlus有一个很好的解决方案.也就是公共字段自动填充的功能.一般满足下面条件的字段就可以使用此功能: 这个字段是大部分表都会有的. 这个字段的值是固定的,或则字段值是可以在后台动态获取的. 常用的就是last_update_time,last_update_name这两个字段. 二.配置MybatisPlus 导包:

  • spring boot整合mybatis+mybatis-plus的示例代码

    Spring boot对于我来说是一个刚接触的新东西,学习过程中,发现这东西还是很容易上手的,Spring boot没配置时会默认使用Spring data jpa,这东西可以说一个极简洁的工具,可是我还是比较喜欢用mybatis,工具是没有最好的,只有这合适自己的. 说到mybatis,最近有一个很好用的工具--------mybatis-Plus(官网),现在更新的版本是2.1.2,这里使用的也是这个版本.我比较喜欢的功能是代码生成器,条件构造器,这样就可以更容易的去开发了. mybatis

  • SpringBoot整合MyBatisPlus配置动态数据源的方法

    MybatisPlus特性 •无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 •损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 •强大的 CRUD 操作:内置通用 Mapper.通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 •支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 •支持多种数据库:支持 MySQL.MariaDB.Ora

  • 详解Spring boot上配置与使用mybatis plus

    http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b这个是mybatisplus的官方文档,上面是mybtisplus的配置使用方法,以及一些功能的介绍 下面开始配置 maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <

  • SpringBoot整合MyBatis-Plus3.1教程详解

    一.说明 Mybatis-Plus是一个Mybatis框架的增强插件,根据官方描述,MP只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑.并且只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间.代码生成,分页,性能分析等功能一应俱全,最新已经更新到了3.1.1版本了,3.X系列支持lambda语法,让我在写条件构造的时候少了很多的"魔法值",从代码结构上更简洁了. 二.项目环境 MyBatis-Plus版本: 3.1.0 SpringBoot版本:2.1.5 JDK

  • springboot集成mybatisplus实例详解

    集成mybatisplus后,简单的CRUD就不用写了,如果没有特别的sql,就可以不用mapper的xml文件的. 目录 pom.xml文件 <?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-insta

  • springmvc与mybatis集成配置实例详解

    简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.ve

  • SpringBoot集成MQTT示例详解

    目录 引言 MQTT 特点 Apache-Apollo 下载 配置与启动 SpringBoot2的开发 添加依赖 自定义配置 配置MQTT发布和订阅 消息发布器 发送消息 入口类 引言 特别提醒: 文中提到的MQTT服务器Apache-Apollo,现在已经不维护.但是客户端的写法是通用的.目前我常用的是RabbitMQ加mqtt插件. MQTT MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件

  • Springboot集成restTemplate过程详解

    一restTemplate简介 restTemplate底层是基于HttpURLConnection实现的restful风格的接口调用,类似于webservice,rpc远程调用,但其工作模式更加轻量级,方便于rest请求之间的调用,完成数据之间的交互,在springCloud之中也有一席之地.大致调用过程如下图 二restTemplate常用方法列表 forObeject跟forEntity有什么区别呢?主要的区别是forEntity的功能更加强大一些,其返回值是一个ResponseEntit

  • SpringBoot 集成Kaptcha实现验证码功能实例详解

    在一个web应用中验证码是一个常见的元素.不管是防止机器人还是爬虫都有一定的作用,我们是自己编写生产验证码的工具类,也可以使用一些比较方便的验证码工具.在网上收集一些资料之后,今天给大家介绍一下kaptcha的和springboot一起使用的简单例子. 准备工作: 1.你要有一个springboot的hello world的工程,并能正常运行. 2.导入kaptcha的maven: <!-- https://mvnrepository.com/artifact/com.github.penggl

  • springboot Mongodb的集成与使用实例详解

    说说springboot与大叔lind.ddd的渊源 Mongodb在Lind.DDD中被二次封装过(大叔的.net和.net core),将它当成是一种仓储来使用,对于开发人员来说只公开curd几个标准的接口即可,而在springboot框架里,它与大叔lind有些类似之处,同样是被二次封装了,开发人员只需要关注自己的业务即可,而标准的curd操作完成由springboot帮助我们来实现,一般地,我们会设计一个与实体对象的接口仓储,让它去继承mongo的标准接口,然后在springboot的依

  • SpringBoot项目使用mybatis-plus代码生成的实例详解

    目录 前言 安装依赖 application.yml添加配置 代码生成实例 代码生成依赖 数据源配置 globalConfig处理通用配置 packageConfig包名设置 strategyConfig配置 小结 总结 前言 mybatis-plus官方地址 https://baomidou.com mybatis-plus是mybatis的增强,不对mybatis做任何改变,涵盖了代码生成,自定义ID生成器,快速实现CRUD,自动分页,逻辑删除等功能,更多功能请查阅官方文档 安装依赖 myb

  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解

    一.添加所需依赖,当前完整的pom文件如下: <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&q

  • 使用SpringBoot整合ssm项目的实例详解

    SpringBoot是什么? Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. Spring Boot 现在已经成为 Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成.成为 SpringBoot 全家桶,成为一把万能钥匙. SpringBoot的特点 1.创建独立的 Spring 应用程序 2.嵌入的 Tomcat ,无需部署 WAR 文件 3.简化 Maven 配置 4.自动配置 Spr

  • SpringBoot学习系列之MyBatis Plus整合封装的实例详解

    前言 MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发.提高效率,但我们并没有直接使用MP的CRUD接口,而是在原来的基础上封装一层通用代码,单表继承我们的通用代码,实现了单表的基础get.save(插入/更新).list.page.delete接口,使用Vo去接收.传输数据,实体负责与数据库表映射. 这样做的目的是与我们之前的那套jpa保持编码风格上的一致,当我们的通用接口不能满足要求时,应当先考虑使用MP的Service层CRUD接口,然后是Mapper的接口,

随机推荐