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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.