Spring整合Mybatis(配置类实现)


一、引入所需依赖

    <dependencies>

        <!--spring核心依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.31</version>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.15</version>
        </dependency>

        <!--mybatis继承Spring所需依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.7</version>
        </dependency>

        <!--事务支持(有事务,需要添加)-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>

        <!--测试类-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.13</version>
        </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 ;
    }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值