Spring全家桶Java基础

MyBatis详解8.集成Spring

2019-01-24  本文已影响1人  卢卡斯哔哔哔

点击进入我的博客

MyBatis详解1.概述
MyBatis详解2.MyBatis使用入门
MyBatis详解3.MyBatis配置详解
MyBatis详解4.映射器Mapper
MyBatis详解5.动态SQL
MyBatis详解6.MyBatis技术内幕
MyBatis详解7.插件
MyBatis详解8.集成Spring

1 引入依赖包

要是用Spring继承MyBatis,必须引入相关的依赖包,这里使用Maven来管理包依赖。

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.21.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.21.RELEASE</version>
        </dependency>
        <!-- mysql的java驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- mybatis包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!-- mybatis集成spring的包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--这里可以使用Java本身的数据源,也可以使用其他数据源如druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>
    </dependencies>

2 配置

在此只列出了完全使用注解实现的方式,使用XML配置的方式不再推荐。

// 表明这是个配置类
@Configuration
// 扫描此包下的所有类,查找Mapper
@MapperScan(value = "com.ankeetc.spring.mapper")
// 引入datasource.properties作为属性文件,方便使用@Value获取属性
@PropertySource(value = "classpath:datasource.properties")
public class MyBatisConfig {
    @Value("${driver}")
    private String driver;
    @Value("${url}")
    private String url;
    @Value("${username}")
    private String username;

    // 使用DruidDataSource配置数据源
    @Bean
    public DruidDataSource MyDataSourceFactory() {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driver);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        return druidDataSource;
    }

    // 配置SqlSessionFactoryBean
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(@Autowired DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        // 设置数据源
        sqlSessionFactoryBean.setDataSource(dataSource);
        // 设置Mapper.xml的源文件
        sqlSessionFactoryBean.setMapperLocations(
                new PathMatchingResourcePatternResolver().getResources("classpath:mappers/*"));
        return sqlSessionFactoryBean;
    }
}
// 可以直接从上下文中获取我们的Mapper的Bean,并直接使用
public class Main {
    public static void main(String[] args) throws Exception {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.ankeetc.spring");
        System.out.println(context.getBean(StudentMapper.class).select("zzx", 1L));
    }
}
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
上一篇下一篇

猜你喜欢

热点阅读