Spring整合Mybatis框架

概括

简而言之让Spring接管Mybatis框架,有两种方法,一种保留Mybatis的核心配置文件,另一种将其整合进Spring的核心配置文件,当然是后者更为简单。

废话不多说,开干!

保留Mybatis核心配置文件

Mybatis核心配置文件

<configuration>
    <!--引入properties-->
    <properties resource="jdbc.properties"></properties>

    <!--配置别名-->
    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>

    <!--配置数据源-->
    <environments default="development">
        <environment id="development">
            <!--配置事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--是否使用连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driverClassName}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--配置mapper映射-->
    <mappers>
        <package name="com.itheima.dao"/>
    </mappers>
</configuration>

保留配置文件的测试类

public class MybatisTest {
    public void test() {
        // 构建工厂类
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("SqlMapConfig.xml"));
        // SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 获取Mapper类
        AccountDao accountDao = sqlSession.getMapper(AccountDao.class);
        // 执行查找方法
        Account account = accountDao.findByName("赵四");
        System.out.println("account = " + account);
    }
}

将Mybatis核心配置文件整合入Spring核心配置文件

Spring核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <!--引入properties-->
    <properties resource="jdbc.properties"></properties>

    <!--配置别名-->
    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>

    <!--配置数据源-->
    <environments default="development">
        <environment id="development">
            <!--配置事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--是否使用连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driverClassName}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--配置mapper映射-->
    <mappers>
        <package name="com.itheima.dao"/>
    </mappers>
</configuration>

整合后的测试类

public class AccountServiceTest {

    @Test
    public void update() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("AplicationContext.xml");
        AccountService accountService = applicationContext.getBean(AccountService.class);

        Account account = new Account();
        account.setMoney(11212D);
        account.setName("小憨包");
        account.setId(1);

        accountService.update(account);
    }
}

总结

整合后的整体目录结构很清晰。

对比

posted @ 2020-10-23 22:36  于大宝执剑江湖  阅读(99)  评论(0)    收藏  举报