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 ;
    }

}

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

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring整合MyBatis需要进行一些配置。以下是一般的配置步骤: 1. 添加依赖:在项目的构建工具(如Maven或Gradle)中添加SpringMyBatis的依赖。 - 对于Maven,可以在pom.xml文件中添加以下依赖: ```xml <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>...</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>...</version> </dependency> <!-- 数据库驱动,根据使用的数据库选择 --> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>...</version> </dependency> </dependencies> ``` - 根据使用的数据库,还需要添加对应的数据库驱动依赖。 2. 配置数据源:在Spring配置文件配置数据源,以连接数据库。 - 可以使用Spring提供的`DataSource`接口的实现,如`BasicDataSource`。 - 配置数据源的相关属性,如数据库URL、用户名、密码等。 3. 配置MyBatis:在Spring配置文件配置MyBatis相关的bean。 - 配置`SqlSessionFactory`,用于创建`SqlSession`对象。 - 配置`MapperScannerConfigurer`,指定Mapper接口的扫描路径。 4. 定义Mapper接口:创建Mapper接口,并使用MyBatis提供的注解或XML文件定义SQL映射。 5. 使用Mapper:在需要使用数据库操作的地方,通过@Autowired注入Mapper接口的实例,然后调用方法进行数据库操作。 这是一个简单的整合配置步骤,具体的配置内容会根据项目的需求和数据库的不同而有所差异。你可以根据项目的具体情况进行相应的配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值