SpringBoot整合Mybatis,多数据源与PageHelper

SpringBoot整合Mybatis

    *SpringBoot2.0以上与2.0以下的默认读取参数名不同
    
    1,引入依赖(gradle):
            testImplementation('org.springframework.boot:spring-boot-starter-test')
            compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.38'
            implementation('org.springframework.boot:spring-boot-starter-web')

    2,resources > mybatis中引入mybatis配置
    
        
        
        
            
                
                
                
                
                
                
                
                
                
                
                
                
            

            
                
                
                
                
                
                
            

        

    
    3,resources> mybatis > mapping 配置mapper.xml文件路径
    
    4,resources > application.properties中配置mybatis路径和jdbc
        spring.datasource.url=jdbc:mysql://localhost:3306/test
        spring.datasource.username=root
        spring.datasource.password=a
        spring.datasource.driver-class-name=com.mysql.jdbc.Driver

        #配置.xml文件路径
        mybatis.config-locations=classpath:mybatis/mybatis-config.xml
        mybatis.mapper-locations=classpath:mybatis/mapping/*.xml
        #配置模型路径
        mybatis.type-aliases-package=com.yc.entity
    
    
多数据源:
    一个项目中有多个数据源<多个库的链接>
    
        1,分包划分多数据源:
            a,自定义多数据源
            b, 设置数据源可以访问
                    package com.yc.dataSource;
                    import org.apache.ibatis.session.SqlSessionFactory;
                    import org.mybatis.spring.SqlSessionFactoryBean;
                    import org.mybatis.spring.SqlSessionTemplate;
                    import org.mybatis.spring.annotation.MapperScan;
                    import org.springframework.beans.factory.annotation.Qualifier;
                    import org.springframework.boot.context.properties.ConfigurationProperties;
                    import org.springframework.boot.jdbc.DataSourceBuilder;
                    import org.springframework.context.annotation.Bean;
                    import org.springframework.context.annotation.Configuration;
                    import org.springframework.context.annotation.Primary;
                    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
                    import javax.sql.DataSource;

                    //DataSource01
                    @Configuration // 注册到springboot容器中
                    @MapperScan(basePackages = "com.yc.test01", sqlSessionFactoryRef = "test1SqlSessionFactory")
                    public class DataSource_1 {
                       /* *//*
                         * @methodDesc: 功能描述:(配置test1数据库)
                         *//*
                        @Bean(name = "test1DataSource")
                        @ConfigurationProperties(prefix = "spring.datasource.test1")
                        @Primary
                        public DataSource testDataSource() {
                            return DataSourceBuilder.create().build();
                        }
                        *//*
                         * @methodDesc: 功能描述:(test1 sql会话工厂)
                         *//*
                        @Bean(name = "test1SqlSessionFactory")
                        @Primary
                        public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource)
                                throws Exception {
                            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
                            bean.setDataSource(dataSource);
                            return bean.getObject();
                        }
                        *//*
                         * @methodDesc: 功能描述:(test1 事物管理)
                         *//*
                        @Bean(name = "test1TransactionManager")
                        @Primary
                        public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
                            return new DataSourceTransactionManager(dataSource);
                        }
                        @Bean(name = "test1SqlSessionTemplate")
                        @Primary
                        public SqlSessionTemplate testSqlSessionTemplate(
                                @Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
                            return new SqlSessionTemplate(sqlSessionFactory);
                        }
                    */
                    }
            c,调用不同的数据源测试
            
mybatis整合PageHelper
    1,引入依赖:
            compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: '1.2.5'
            compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.4'
    2,Service层
               PageHelper.startPage(page,pagesize);
               List listUser =  userMapper.selectListUser();
               PageInfo pageInfoUser = new PageInfo(listUser);
    3,配置信息:
               logging.level.com.example.demo.dao=DEBUG
               pagehelper.helperDialect=mysql
               pagehelper.reasonable=true
               pagehelper.supportMethodsArguments=true
               pagehelper.params=count=countSql
               pagehelper.page-size-zero=true
               
    
        
    *关于在main函数中配置@MapperScan(basePackages = {"com.yc.*"})
        配置之后,在Dao层中不用继续配置@Resposity装配

    *@Transactional的指定
        多数据源的情况下需要进行指向事务@Transactional(transactionManager="...");  指向事务
                                        @bean(name="...")
                                        
    
        

 

你可能感兴趣的:(Java框架学习)