springboot+mybatis-plus 통합

8528 단어 자바
MybatisSqlSessionFactoryBean  
package com.demo;

import javax.sql.DataSource;

import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;

import com.baomidou.mybatisplus.MybatisConfiguration;
import com.baomidou.mybatisplus.MybatisXMLLanguageDriver;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;

@Configuration
public class MybatisPlusConfig {
    @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;
 
    /**
     *   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);
        }
        MybatisConfiguration mc = new MybatisConfiguration();
        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;
    }
}
   
package com.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.demo.user.mapper")
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		SpringApplication.run(Application.class,args);
	}

}
mybatis-plus       
package com.demo.common;

import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * 

*코드 생 성기 프레젠테이션**/public class MpGenerator{/**
*MySQL 생 성 데모**/public static void main(String[]args){AutoGenerator mpg=new AutoGenerator();/전역 설정 GlobalConfig gc=new GlobalConfig();gc.setOutputDir("D:\\workspace\\mybatis-plus\\src\\main\\java"); gc.setFileOverride(true); gc.setActiveRecord(true); gc.setEnableCache(false);// XML 2 급 캐 시 gc.setBaseResultMap(true);/XML ResultMap gc.setBaseColumnList(false);// XML columList gc.setAuthor("chenshuang"); // 사용자 정의 파일 이름,%s 가 표 의 실체 속성 을 자동 으로 채 웁 니 다!gc.setMapperName("%sDao"); gc.setXmlName("%sDao"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setControllerName("%sController"); mpg.setGlobalConfig(gc); // 데이터 원본 설정 DataSourceConfig dsc=new DataSourceConfig();dsc.setDbType(DbType.MYSQL); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("root"); dsc.setUrl("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf8"); mpg.setDataSource(dsc); // 전략 설정 StrategyConfig strategy=new StrategyConfig();/strategy.setTablePrefix("t_");// 표 접두사 strategy.setNaming(Naming Strategy.underlineto_camel);// 테이블 이름 생 성 정책 strategy.setInclude(new String[]{"tuser" }); // 생 성 할 표//strategy.setExclude(new String[]{"user"});/생 성 된 표/필드 이름 생 성 전략 strategy.setFieldNaming(Naming Strategy.underline 제외to_camel); // 사용자 정의 실체 부모 클래스//strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");/사용자 정의 실체,공공 필드//strategy.setSuperEntityColumns(new String[]{"testid", "age" }); // 사용자 정의 mapper 부모 클래스/strategy.setSuperMapperClass("com.demo.dao.UserMapper");/사용자 정의 서비스 부류//strategy.setSuperServiceClass("com.demo.service.UserService");/사용자 정의 서비스 구현 클래스 부모 클래스//strategy.setSuperServiceImplClass("com.demo.service.impl.UserServiceImpl");/사용자 정의 controller 부모 클래스/strategy.setSuperController Class("com.demo.controller.UserController");/[실체]필드 상수 생 성 여부(기본 false)//public static final String ID="testid"; // strategy.setEntityColumnConstant(true); // 【실체]빌 더 모델(기본 false)//public User setName(String name){this.name=name;return this;} // strategy.setEntityBuliderModel(true); mpg.setStrategy(strategy); // 패키지 설정 PackageConfig pc=new PackageConfig();pc.setParent("com.demo"); pc.setModuleName("user"); mpg.setPackageInfo(pc); // 사용자 정의 설정 을 주입 합 니 다.VM 에 cfg.abc 설정 값 InjectionConfig cfg=new InjectionConfig(){@Override public void initMap(){Map map=new HashMap()을 사용 할 수 있 습 니 다.map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); this.setMap(map); } }; mpg.setCfg(cfg); // 사용자 정의 템 플 릿 설정//TemplateConfig tc=new TemplateConfig();/tc.setController("..."); // tc.setEntity("..."); // tc.setMapper("..."); // tc.setXml("..."); // tc.setService("..."); // tc.setServiceImpl("..."); // mpg.setTemplate(tc); // mpg.execute()생 성 을 실행 합 니 다./인쇄 주입 설정 System.err.println(mpg.getCfg().getMap().get("abc");}}application.properties 설정\#view spring.mvc.view.prefix=/WEB-INF/view/spring.mvc.view.suffix=.jsp\#jdbcconfig spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #druid_config spring.datasource.max-active: 20 spring.datasource.initial-size: 1 spring.datasource.min-idle: 3 spring.datasource.max-wait: 60000 spring.datasource.time-between-eviction-runs-millis: 60000 spring.datasource.min-evictable-idle-time-millis: 300000 spring.datasource.test-while-idle: true spring.datasource.test-on-borrow: false spring.datasource.test-on-return: false spring.datasource.poolPreparedStatements: true # mybatis_config mybatis.mapper-locations=classpath:com/demo/user/mapper/xml/*.xml mybatis.typeAliasesPackage=com.demo.user.entity # log_config DEBUG ERROR INFO WARN logging.level.root=DEBUG,ERROR,INFO,WARN logging.file=./logs/spring-boot-logging.log

좋은 웹페이지 즐겨찾기