Spring整合Mybatis(配置类实现)


一、引入所需依赖

    <dependencies>

        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
            <version>5.3.31version>
        dependency>

        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.5.15version>
        dependency>

        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatis-springartifactId>
            <version>2.0.7version>
        dependency>

        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-jdbcartifactId>
            <version>5.1.9.RELEASEversion>
        dependency>
        
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.33version>
        dependency>

        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13.2version>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.2.13version>
        dependency>
        
    dependencies>

二、jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database
jdbc.username=root
jdbc.password=root

三、编写核心配置类

我这里是分成两个配置类,然后统一引入SpringConfig,也可以都写在一个配置类当中

1.SpringConfig

package com.powernode.bank.config;


import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.*;

import javax.sql.DataSource;

/**
 * spring配置类
 * @Import 将配置类分成多个 , 全部导入一个进行整合
 * @ComponentScan 组件扫描
 * @Configuration 标注为一个配置类
 */
@Configuration
@ComponentScan(basePackages = "com.powernode.bank")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {


}

2.JdbcConfig

package com.powernode.bank.config;


import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;
import java.sql.Driver;

/**
 * jdbc配置类
 */
@Configuration
@PropertySource(value = "classpath:jdbc.properties") // 读取属性文件并且加载到spring容器
public class JdbcConfig {

    @Value("${jdbc.driver}")
    private String driverClassName ;

    @Value("${jdbc.url}")
    private String url ;

    @Value("${jdbc.username}")
    private String username ;

    @Value("${jdbc.password}")
    private String password ;


    /**
     * 配置数据源 交给spring管理
     * 注意默认使用方法的名字作为对象名称
     *
     *
     * setDriverClassName  : 通过属性文件中的驱动不能使用 Drive类型接收,需要使用DriverclassName
     * @return 数据源
     */
    @Bean
    public DataSource getDataSource(){
        //创建一个数据源对象 赋值
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource ;
    }

}

3.MybatisConfig

package com.powernode.bank.config;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class MybatisConfig {


    /**
     * SqlSessionFactoryBean 负责给我们产生sqlSession
     * 知道数据源 ,在创建这个对象的时候指定你的数据源
     * @param dataSource
     * @return
     */
    @Bean
    public SqlSessionFactoryBean getSqlsessionFactroyBean(@Autowired DataSource dataSource){

        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        //注入数据源
        factoryBean.setDataSource(dataSource);
        //注入mybatis核心配置文件路径

        //创建mybatis配置项类  可以配置驼峰命名、日志实现、、、、
        org.apache.ibatis.session.Configuration config = new org.apache.ibatis.session.Configuration();
//        config.setLogImpl();
        return  factoryBean ;
    }


    /**
     * Mapper扫描配置器
     * 指定扫描的包
     */
    @Bean
    public MapperScannerConfigurer  mapperScanner(){
        //创建mapper扫描配置器
        MapperScannerConfigurer configurer = new MapperScannerConfigurer();
        configurer.setBasePackage("com.powernode.bank.mapper");
        return configurer ;
    }

}

最后编写测试类进行测试就好了

你可能感兴趣的:(spring,mybatis,java)