`

springboot mybatisplus 集成(附代码)

阅读更多

package com.baomidou.springboot.config;

 

import java.sql.SQLException;

 

import javax.sql.DataSource;

 

import org.apache.ibatis.mapping.DatabaseIdProvider;

import org.apache.ibatis.plugin.Interceptor;

import org.mybatis.spring.annotation.MapperScan;

import org.mybatis.spring.boot.autoconfigure.MybatisProperties;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.bind.RelaxedPropertyResolver;

import org.springframework.boot.context.properties.EnableConfigurationProperties;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.core.env.Environment;

import org.springframework.core.io.DefaultResourceLoader;

import org.springframework.core.io.ResourceLoader;

import org.springframework.util.ObjectUtils;

import org.springframework.util.StringUtils;

 

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

import com.baomidou.mybatisplus.MybatisConfiguration;

import com.baomidou.mybatisplus.MybatisXMLLanguageDriver;

import com.baomidou.mybatisplus.entity.GlobalConfiguration;

import com.baomidou.mybatisplus.enums.DBType;

import com.baomidou.mybatisplus.plugins.PaginationInterceptor;

import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;

import com.baomidou.mybatisplus.spring.boot.starter.SpringBootVFS;

 

/**

 * mybatispuls配置

 * 

 * @author Davis

 * @date 2017年6月9日 上午9:25:37

 */

@Configuration

@EnableConfigurationProperties(MybatisProperties.class)

@MapperScan("com.baomidou.springboot.mapper*")

public class MybatisPlusConfig/* implements EnvironmentAware */ {

 

@Autowired

private Environment environment;

 

private RelaxedPropertyResolver propertyResolver;

 

@Autowired

private DataSource dataSource;

 

@Autowired

private MybatisProperties properties;

 

@Autowired

private ResourceLoader resourceLoader = new DefaultResourceLoader();

 

@Autowired(required = false)

private Interceptor[] interceptors;

 

@Autowired(required = false)

private DatabaseIdProvider databaseIdProvider;

/*

* @Override public void setEnvironment(

* org.springframework.core.env.Environment environment) {

* this.propertyResolver = new RelaxedPropertyResolver(environment,

* "spring.datasource.");

* }

*/

 

/**

* 配置DataSource

* @return

* @throws SQLException

*/

@Bean

public DataSource druidDataSource() throws SQLException {

this.propertyResolver = new RelaxedPropertyResolver(environment, "spring.datasource.");

 

System.out.println("注入druid!!!");

DruidDataSource datasource = new DruidDataSource();

datasource.setUrl(propertyResolver.getProperty("url"));

datasource.setDriverClassName(propertyResolver.getProperty("driver-class-name"));

datasource.setUsername(propertyResolver.getProperty("username"));

datasource.setPassword(propertyResolver.getProperty("password"));

datasource.setInitialSize(Integer.valueOf(propertyResolver.getProperty("initial-size")));

datasource.setMinIdle(Integer.valueOf(propertyResolver.getProperty("min-idle")));

datasource.setMaxWait(Long.valueOf(propertyResolver.getProperty("max-wait")));

datasource.setMaxActive(Integer.valueOf(propertyResolver.getProperty("max-active")));

datasource.setMinEvictableIdleTimeMillis(

Long.valueOf(propertyResolver.getProperty("min-evictable-idle-time-millis")));

try {

datasource.setFilters(propertyResolver.getProperty("filters"));

} catch (SQLException e) {

e.printStackTrace();

}

return datasource;

}

 

/**

* mybatis-plus分页插件

*/

@Bean

public PaginationInterceptor paginationInterceptor() {

PaginationInterceptor page = new PaginationInterceptor();

page.setDialectType("mysql");

return page;

}

 

/**

* 这里全部使用mybatis-autoconfigure 已经自动加载的资源。不手动指定 配置文件和mybatis-boot的配置文件同步

* @return

*/

@Bean

public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {

MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();

mybatisPlus.setDataSource(dataSource);

mybatisPlus.setVfs(SpringBootVFS.class);

if (StringUtils.hasText(this.properties.getConfigLocation())) {

mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));

}

mybatisPlus.setConfiguration(properties.getConfiguration());

if (!ObjectUtils.isEmpty(this.interceptors)) {

mybatisPlus.setPlugins(this.interceptors);

}

// MP 全局配置,更多内容进入类看注释

GlobalConfiguration globalConfig = new GlobalConfiguration();

globalConfig.setDbType(DBType.MYSQL.name());// 数据库类型

// ID 策略 AUTO->`0`("数据库ID自增") INPUT->`1`(用户输入ID")

// ID_WORKER->`2`("全局唯一ID") UUID->`3`("全局唯一ID")

globalConfig.setIdType(2);

globalConfig.setSqlInjector(new com.baomidou.mybatisplus.mapper.AutoSqlInjector());

// MP 属性下划线 转 驼峰 , 如果原生配置 mc.setMapUnderscoreToCamelCase(true)

// 开启,该配置可以无。

// globalConfig.setDbColumnUnderline(true);

mybatisPlus.setGlobalConfig(globalConfig);

MybatisConfiguration mc = new MybatisConfiguration();

// 对于完全自定义的mapper需要加此项配置,才能实现下划线转驼峰

// mc.setMapUnderscoreToCamelCase(true);

mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);

mybatisPlus.setConfiguration(mc);

if (this.databaseIdProvider != null) {

mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);

}

if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {

mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());

}

if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {

mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());

}

if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {

mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());

}

return mybatisPlus;

}

 

/**

* 注册一个StatViewServlet

* @return

*/

@Bean

public ServletRegistrationBean DruidStatViewServle() {

// org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),

"/druid/*");

// 添加初始化参数:initParams

// 白名单:

// servletRegistrationBean.addInitParameter("allow","127.0.0.1");

// IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not

// permitted to view this page.

// servletRegistrationBean.addInitParameter("deny","192.168.1.73");

// 登录查看信息的账号密码.

servletRegistrationBean.addInitParameter("loginUsername", "root");

servletRegistrationBean.addInitParameter("loginPassword", "root");

// 是否能够重置数据.

servletRegistrationBean.addInitParameter("resetEnable", "false");

return servletRegistrationBean;

}

 

/**

* 注册一个:filterRegistrationBean

* @return

*/

@Bean

public FilterRegistrationBean druidStatFilter() {

FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

// 添加过滤规则.

filterRegistrationBean.addUrlPatterns("/*");

// 添加不需要忽略的格式信息.

filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

return filterRegistrationBean;

}

}

 

 

 

配置文件:

#app

server:

    port: 8080

 

#spring

spring:

  devtools:

    restart:

      enabled: false

  # MYSQL DATABASE CONFIG

  datasource:

    name: shopxx

    url: jdbc:mysql://127.0.0.1:3306/shopxx

    username: root

    password: 123456

    type: com.alibaba.druid.pool.DruidDataSource

    driver-class-name: com.mysql.jdbc.Driver

    filters: stat

    maxActive: 20

    initialSize: 1

    maxWait: 60000

    minIdle: 1

    timeBetweenEvictionRunsMillis: 60000

    minEvictableIdleTimeMillis: 300000

    validationQuery: select 'x'

    testWhileIdle: true

    testOnBorrow: false

    testOnReturn: false

    poolPreparedStatements: true

    maxOpenPreparedStatements: 20

#mybatis

mybatis-plus:

  mapper-locations: classpath:/mapper/*Mapper.xml

  typeAliasesPackage: com.baomidou.springboot.entity

  global-config:

    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";

    id-type: 2

    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"

    field-strategy: 2

    #驼峰下划线转换

    db-column-underline: true

    #刷新mapper 调试神器

    refresh-mapper: true

    #数据库大写下划线转换

    #capital-mode: true

    #序列接口实现类配置

    #key-generator: com.baomidou.springboot.xxx

    #逻辑删除配置

    #logic-delete-value: 0

    #logic-not-delete-value: 1

    #自定义填充策略接口实现

    #meta-object-handler: com.baomidou.springboot.xxx

    #自定义SQL注入器

    #sql-injector: com.baomidou.springboot.xxx

  configuration:

    map-underscore-to-camel-case: true

    cache-enabled: false

#logging

logging:

  level: warn

 

分享到:
评论

相关推荐

    SpringBoot+MybatisPlus集成Clickhouse

    项目将 Spring Boot 和 MyBatis-Plus 与 Clickhouse 数据库集成,确保项目的实际运行效果,而不仅仅是空泛的伪代码。这种实际项目的搭建展示了您对技术的深入理解和实践能力。以下是对这一项目的丰富描述: 技术栈...

    springboot-mybatisplus-demo.zip

    在现代Java Web开发中,SpringBoot以其便捷的集成、自动配置和快速启动等特性深受开发者喜爱。而MyBatisPlus作为MyBatis的增强工具,简化了数据库操作,使得开发更加高效。本篇文章将详细探讨如何将SpringBoot与...

    Springboot集成MyBatisplus并且实现自动生成代码模板

    Springboot集成MyBatisplus,使用mysql5.7,执行自动生成代码的方法,即可根据表生成该表的所有代码。也可以生成所有表的相关代码。使用的MyBatisplus版本时3.5.1及以上版本。Springboot3.5.1以下的版本,生成代码的...

    springboot mybatisplus 多数据源源码

    本篇文章将详细讲解如何利用SpringBoot集成MyBatisPlus实现多数据源配置,并通过源码解析来加深理解。 首先,SpringBoot以其"约定优于配置"的理念简化了Spring的应用启动过程,而MyBatisPlus则是MyBatis的增强工具...

    SpringBoot集成MyBatis-Plus快速入门Demo

    编译器版本:IntelliJ IDEA 2020.3.2 x64 JDK版本:java 1.8.0_111 SpringBoot集成MyBatis-Plus快速入门Demo,包括CRUD操作、多条件查询、性能分析等代码实现。

    springboot+mybatis-plus+jwt+redis的简易后端框架

    一个简单的后端框架,实现步骤可以根据文章 ...2.springboot+JWT+redis实现token身份令牌验证(附代码)(超详细) https://blog.csdn.net/pengpm/article/details/124077041?spm=1001.2014.3001.5501

    maven springBoot mybatisPlus H-ui Admin dataTable

    标题中的“maven springBoot mybatisPlus H-ui Admin dataTable”提到了四个关键技术和工具,分别是Maven、Spring Boot、MyBatis Plus以及H-ui Admin和dataTable。这些技术在IT行业中有着广泛的应用,尤其是在构建...

    springboot+mybatisplus+druid+hive+mysql.zip

    在【压缩包子文件的文件名称列表】中,我们看到的"hive-demo-master"可能是一个包含Hive使用示例的项目,它可能包含配置文件、Java代码、测试脚本等,用于演示如何在SpringBoot项目中集成Hive,进行数据的读写操作。...

    SpringBoot+MybatisPlus+maven项目架构,下载就能直接用

    MybatisPlus集成的代码生成器可以自动生成实体类、Mapper接口、Mapper XML文件以及Service和Controller层的代码,这大大节省了手动编写这些基本代码的时间。用户只需指定表名和相关配置,就可以一键生成符合规范的...

    SpringBoot第 14 讲:SpringBoot+MyBatisPlus(代码)

    通过以上步骤,我们就成功地将MyBatisPlus集成到了SpringBoot项目中,并可以利用其提供的各种便捷操作进行数据库管理。MyBatisPlus还提供了条件构造器、Lambda表达式支持、动态SQL等功能,大大简化了开发过程。记得...

    springboot-集成达梦数据库-源代码

    springboot-父子工程-初始版(包含CRUD示例接口) jpa-hibernate-dm: 数据库为{国产达梦数据库},持久层技术为jpa-hibernate mybatis-dm: 数据库为{国产达梦数据库},持久层技术为mybatis mybatis-plus-dm: 数据库为{...

    springboot+mybatisplus+mysql 多数据源

    6. **MyBatisPlus集成**: 集成MyBatisPlus到Spring Boot项目中,需要配置MyBatisPlus的自动扫描、配置文件路径等,以确保MyBatisPlus的Mapper和Service可以正常工作。 7. **数据库连接池**: 数据库连接池(如...

    基于Springboot+Mybatisplus+Vue的在线购物平台管理系统

    【标题】"基于Springboot+Mybatisplus+Vue的在线购物平台管理系统" 是一个现代Web应用程序的实现,它结合了三个强大的技术栈来构建高效、易维护的电子商务系统。Springboot是Java领域的轻量级框架,它简化了Spring...

    SpringBoot+Mybatis+Oracle代码demo

    在本项目"SpringBoot+Mybatis+Oracle代码demo"中,开发者旨在提供一个集成SpringBoot、Mybatis和Oracle数据库的示例,以帮助初学者更好地理解和应用SpringBoot框架。下面将详细阐述这三个核心技术及其在项目中的应用...

    SpringBoot集成MybatisPlus, Redis,hikari ,swagger2

    在本项目中,我们主要关注的是SpringBoot框架与MybatisPlus、Redis、Hikari以及Swagger2的集成。这些技术都是现代Java开发中常用且重要的组件,它们在实际项目中的应用广泛,对于提升开发效率和优化系统性能有着显著...

    mybatis plus+springboot反向生成代码

    在SpringBoot项目中集成Mybatis Plus,可以方便地进行数据库操作,同时利用其反向生成代码的能力,避免手动编写重复的代码。 反向生成代码的过程大致分为以下几个步骤: 1. **配置Mybatis Plus**:在SpringBoot的...

    springboot-mybatisplus-shardingjdbc.zip

    《SpringBoot、MyBatisPlus与Sharding-JDBC的集成应用深度解析》 在现代的互联网应用开发中,数据管理的高效性和可扩展性是关键因素。本项目"springboot-mybatisplus-shardingjdbc"正是一个针对这一需求的集成学习...

    SpringBoot项目+MybatisPlus使用+Redis缓存

    在SpringBoot项目中集成MybatisPlus和Redis,可以实现高效的数据访问和缓存策略。例如: 1. **MybatisPlus整合Redis**:在需要缓存的查询方法上添加`@Cacheable`注解,通过Spring Cache抽象层,将结果存储到Redis中...

    SpringBoot_MybatisPlus框架.rar

    《SpringBoot与MybatisPlus框架集成的深度解析》 在当今的Java开发领域,SpringBoot以其简洁、快速的开发体验,已经成为主流的微服务框架。而MybatisPlus作为Mybatis的增强工具,提供了丰富的功能,简化了对数据库...

Global site tag (gtag.js) - Google Analytics