Springboot統合mybaties


詳細
前情:プロジェクトDBアクセスは主にJPAです.しかし前期需要の不確定等によりentityの関連関係等が不確定となる.明らかにJPAはマルチ条件クエリでmybatiesより弱いと感じた.だからmybatiesをプロジェクト、データアクセス層に統合し、JPAとmybatiesを混用します.ここでmybatiesは主に特殊なクエリーに使用されます.
1.pom依存:


	org.mybatis.spring.boot
	mybatis-spring-boot-starter
	1.3.0




	com.github.pagehelper
	pagehelper
	4.1.6




    org.mybatis.generator
    mybatis-generator-maven-plugin
    1.3.5


2.コード生成構成(resourcesディレクトリの下):






    
	
    
        
            
        
        
        
        
            
        
        
        
        
            
        

		
        
        

3.mybatis構成

#mybatis
mybatis:
  type-aliases-package: api.qooco.com.petstore.entity
  mapper-locations: classpath*:/sqlMapperXml/*.xml
  configuration:
    map-underscore-to-camel-case: true
    use-generated-keys: true
    default-fetch-size: 100
    default-statement-timeout: 25000
    cache-enabled: true
    aggressive-lazy-loading: true
    lazy-loading-enabled: false
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4.ページング構成:

@Configuration
@EnableJpaAuditing
@EnableTransactionManagement
@EnableSpringDataWebSupport
@MapperScan("api.xxx.com.petstore.mapper")
public class AppConfig {

    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("dialect", "mysql");
        p.setProperty("supportMethodsArguments", "true");
        p.setProperty("autoRuntimeDialect", "true");
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        p.setProperty("returnPageInfo", "always");
        p.setProperty("params", "count=countSql");
        pageHelper.setProperties(p);
        return pageHelper;
    }
}
    }