zoukankan      html  css  js  c++  java
  • springboot(二) 设置Mybatis和Spring Boot整合

    MybatisSpring Boot的整合有两种方式

    第一种使用mybatis官方提供的Spring Boot整合包实现地址https://github.com/mybatis/spring-boot-starter

    第二种使用mybatis-spring整合的方式也就是我们传统的方式

    这里我们推荐使用第二种因为这样我们可以很方便的控制Mybatis的各种配置

    首先创建一个Mybatis的配置类

     

    代码

    import javax.sql.DataSource;

    import org.mybatis.spring.SqlSessionFactoryBean;

    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    import org.springframework.core.io.Resource;

    import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

    import org.springframework.core.io.support.ResourcePatternResolver;

    @Configuration

    public class MyBatisConfig {

        @Bean

        @ConditionalOnMissingBean //当容器里没有指定的Bean的情况下创建该对象

        public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {

            SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

            // 设置数据源

            sqlSessionFactoryBean.setDataSource(dataSource);

            // 设置mybatis的主配置文件

            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

            Resource mybatisConfigXml = resolver.getResource("classpath:mybatis/mybatis-config.xml");

            sqlSessionFactoryBean.setConfigLocation(mybatisConfigXml);

            // 设置别名包

            sqlSessionFactoryBean.setTypeAliasesPackage("com.taotao.cart.pojo");

            return sqlSessionFactoryBean;

        }

    }

    然后,创建Mapper接口的扫描类MapperScannerConfig:

     

    代码

    import org.mybatis.spring.mapper.MapperScannerConfigurer;

    import org.springframework.boot.autoconfigure.AutoConfigureAfter;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    @Configuration

    @AutoConfigureAfter(MyBatisConfig.class) //保证在MyBatisConfig实例化之后再实例化该类

    public class MapperScannerConfig {

        

        // mapper接口的扫描器

        @Bean

        public MapperScannerConfigurer mapperScannerConfigurer() {

            MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

            mapperScannerConfigurer.setBasePackage("com.taotao.cart.mapper");

            return mapperScannerConfigurer;

        }

    }

    本人开发小白,所写随笔有转发、有心得、随笔、所见问题、或者感觉不错的东西,希望能帮助他人,同时也相当给自己方便!(未来及标明出处,望原作者以及读者见谅海涵!一切为了能解决问题。。。。)
  • 相关阅读:
    [图形学] 结束 [Unity Shader] 开始
    [图形学] Chp18 OpenGL表面纹理函数
    [图形学] Chp17 OpenGL光照和表面绘制函数
    [图形学] Chp14 GLU曲面裁剪函数程序示例及样条表示遗留问题
    [图形学] Chp10 OpenGL三维观察程序示例
    [图形学] 问题: 裁剪窗口坐标对应显示窗口中像素是一对一还是一对多?
    [图形学] Chp9 三维几何变换--栈处理函数与矩阵管理函数的区别
    [图形学] 习题8.12 NLN二维线段裁剪算法实现
    [图形学] 习题8.6 线段旋转后使用Cohen-Sutherland算法裁剪
    [图形学] Chp8 使用双缓存创建帧动画
  • 原文地址:https://www.cnblogs.com/chengjiao/p/9633588.html
Copyright © 2011-2022 走看看