Spring整合MyBatis

一、配置。

1.spring配置类

package com.example.Config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;

@Configuration
@ComponentScan("com.example")
@Import({JdbcConfig.class, MyBatisConfig.class})
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {

}

2.jdbc配置类

package com.example.Config;

import com.alibaba.druid.pool.DruidDataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;


import javax.sql.DataSource;
import java.beans.PropertyVetoException;
//标志spring配置类加载property文件的配置

public class JdbcConfig {
    //property文件的配置使用value配置的表达式取出
    @Value("${jdbc.driver}")
    private String driver ;
    @Value("${jdbc.url}")
    private String url ;
    @Value("${jdbc.username}")
    private String username ;
    @Value("${jdbc.password}")
    private String password ;
    //标注在方法上,该方法的返回值作为bean存在spring容器内
    @Bean("dataSource")
    public DataSource getDataSource() throws PropertyVetoException {
        //存储数据源接口池
        DruidDataSource druidDataSource = new DruidDataSource();
        //设置数据源参数
        druidDataSource.setDriverClassName(driver);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        //返回数据源
        return druidDataSource;
    }
}

3.mybatis配置类

package com.example.Config;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MyBatisConfig {
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
//        实例化
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//若是其他文件则修改包路径
        sqlSessionFactoryBean.setTypeAliasesPackage("com.itheima.domain"); 
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
//在这可修改其他配置类
        msc.setBasePackage("com.example.Dao");
        return msc;
    }
}

4.整合Mybatis

二、具体实现。

1.pom.xml文件中导入依赖,

  由于之前的总是使用的是MyBatis中内置的连接池,现在使用Druid连接池。在resources目录下导入properties文件(用于存放数据库信息)

   <!--依赖管理-->
    <dependencies>
        <!--Spring整合junit单元测试依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.2.RELEASE</version>
            <scope>test</scope>
        </dependency>
      
        <!--Spring核心依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>
 
        <!--
            整合MyBatis
                1.数据库驱动依赖
                2.连接池依赖
                3.MyBatis依赖
                4.MyBatis整合Spring
                    mybatis-spring jar
                    spring-jdbc    jar
                5.日志相关jar包
        -->
 
        <!--整合Mybatis-->
        <!--1. 数据库依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--2. 连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.23</version>
        </dependency>
        <!--3. mybatis本身的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--4. 整合mybatis和spring的依赖-->
        <!--MyBatis提供的和Spring进行整合的jar包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <!--spring对jdbc封装的jar包也要导入进来,否则mybatis无法整合-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>
 
        <!--5. 日志依赖-->
        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>
        <!-- 添加logback-classic依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- 添加logback-core依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>

2.创建AccountDao接口

Dao层是用来与数据库操作的层,AccountDao就是操作Account表的类

public interface AccountDao {
    @Insert("insert into account(name,money)values(#{name},#{money})")
    void save(Account account);
    @Delete("delete from account where id = #{id} ")
    void delete(Integer id);
    @Update("update account set name = #{name} , money = #{money} where id = #{id} ")
    void update(Account account);
    @Select("select * from account")
    List<Account> findAll();
    @Select("select * from account where id = #{id} ")
    Account findById(Integer id);
}

到这就完成了spring整合mybatis,在业务层(service)可以调用AccountDao类下的方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

犀牛超人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值