SpringBoot集成Mybatis+xml格式的sql配置文件

 

   最近一直在研究SpringBoot技术,由于项目需要,必须使用Mybatis持久化数据。所以就用SpringBoot集成Mybatis。由于项目使用的是xml配置文件格式的SQL管理,所以SpringBoot必须配置Mybatis文件。但这样做的话又与SpringBoot的零xml配置冲突。所以索性使用java类来配置Mybatis。下面是Mybatis的配置类:

 

 

 



import java.util.Properties;

import javax.sql.DataSource;

import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import com.github.pagehelper.PageHelper;

import tk.mybatis.spring.mapper.MapperScannerConfigurer;
/**
 * Mybatis & Mapper & PageHelper 配置
 * 
 * @file MybatisConfigurer.java
 * @author zoboy
 * @version 2.0.0
 * @todo TODO Copyright(C), 2017 xi'an Coordinates Software Development Co.,
 *       Ltd.
 */
@Configuration
public class MybatisConfigurer {
	
	static final String ALIASESPACKAG="com.cictec.cloud.bus.middleware.dc.common.biz.entity";
	static final String MAPPERXMLPATH="classpath:sqlmapper/*.xml";
	static final String BASEPACKAGE="com.cictec.cloud.bus.middleware.dc.mapper";
	static final String DATABSAENAME="POSTGRESQL";
	
    @Bean
    public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
        factory.setDataSource(dataSource);
        //实体类的包名(根据你的项目自行修改)
        factory.setTypeAliasesPackage(ALIASESPACKAG);

        //配置分页插件,详情请查阅官方文档
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("pageSizeZero", "true");//分页尺寸为0时查询所有纪录不再执行分页
        properties.setProperty("reasonable", "true");//页码<=0 查询第一页,页码>=总页数查询最后一页
        properties.setProperty("supportMethodsArguments", "true");//支持通过 Mapper 接口参数来传递分页参数
        pageHelper.setProperties(properties);

        //添加插件
        factory.setPlugins(new Interceptor[]{pageHelper});

        //添加XML目录
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        //*.mapper.xml的地址(根据你的项目自行修改)
        factory.setMapperLocations(resolver.getResources(MAPPERXMLPATH));
        
        return factory.getObject();
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
        //*.mapper(*.dao)的包名(根据你的项目自行修改)
        mapperScannerConfigurer.setBasePackage(BASEPACKAGE);

        //配置通用Mapper,详情请查阅官方文档
        Properties properties = new Properties();
        //tk.mybatis.mapper.common.Mapper
        properties.setProperty("mappers", "tk.mybatis.mapper.common.Mapper");
        properties.setProperty("notEmpty", "false");//insert、update是否判断字符串类型!='' 即 test="str != null"表达式内是否追加 and str != ''
        //使用的数据库类型名称(MySQL,Oracle,Postgresql...)
        properties.setProperty("IDENTITY", DATABSAENAME);
        mapperScannerConfigurer.setProperties(properties);

        return mapperScannerConfigurer;
    }
}

 

 

 

 

可以直接在你的项目中使用这个配置类,所要改动的地方有3处,我在代码中用注释标注了。

项目结构如下图所示:

经测试,可以正常运行。

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值