mybatis的配置通过自定义编程方式实现的,导致配置文件的mybatis配置不生效,解决方式如下:

目录

这里只是拿其中一个配置来举例:

springboot mybatis配置map-underscore-to-camel-case自动转驼峰不生效

如果yml中mtybatis中配置了如下:

mybatis:
     configuration:
        map-underscore-to-camel-case: true

则在mybatis的config文件中增加

    @Bean
    @ConfigurationProperties(prefix = "mybatis.configuration")
    public org.apache.ibatis.session.Configuration globalConfiguration() {
        return new org.apache.ibatis.session.Configuration();
    }
 
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource,org.apache.ibatis.session.Configuration configuration) throws Exception
    {
        String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
        String mapperLocations = env.getProperty("mybatis.mapperLocations");
        String configLocation = env.getProperty("mybatis.configLocation");
        typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
        VFS.addImplClass(SpringBootVFS.class);
 
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
 
        sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
 
        // 第一种 配置mybatis自动转驼峰 生效
       // sessionFactory.setConfiguration(configuration);
 
        //  第二种 配置mybatis自动转驼峰 生效
        sessionFactory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
        return sessionFactory.getObject();
 
        这里使用的是第二种,因为Configuration对象和configLocation不能同时存在,记得去掉方法参数中的configuration对象
 
    }

 

 

转载:https://blog.csdn.net/qq_33238562/article/details/119616339

 

posted @ 2022-03-17 17:17  迷走神经  阅读(1073)  评论(0编辑  收藏  举报