1. 程式人生 > 其它 >Spring整合Mybatis的方式一

Spring整合Mybatis的方式一

技術標籤:Springmybatisspring

1.在Spring的配置檔案當中編寫資料來源

      <!--DataSource資料來源:使用Spring的資料來源替換Mybatis的配置-->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"
/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="333"
/> </bean>

2.編寫SqlSessionFactory(可以繫結Mybatis的資原始檔:推薦這麼操作,這樣使得mybatis的配置檔案當中程式碼減少只需要保留一些基礎的設定)

     <!--SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref=
"datasource" /> <!--繫結Mybatis的配置檔案--> <property name="configLocation" value="classpath:Mybatis-config.xml"/> <property name="mapperLocations" value="classpath:com/sqx/dao/*.xml"/> </bean>

3.編寫SqlSessionTemplate(等價於SqlSession)

  <!--SqlSessionTemplate-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><!--構造器注入-->
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>

4.編寫Mapper介面的實現類,設定一個屬性SqlSessionTemplate的屬性和對應的set方法,以及對方法的重寫

public class UserMapperImpl implements UserMapper {
    private SqlSessionTemplate sqlSession;
//以前我們的操作全在sqlSession中執行,現在全在SqlSessionTemplate當中執行
    public void setSqlSession(SqlSessionTemplate sqlSession) {
        this.sqlSession = sqlSession;
    }

    public List<User> queryUsers() {
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.queryUsers();
    }
}

5.將介面的實現類託管給Spring(註冊在Spring的配置檔案當中)

<bean id="userMapper" class="com.sqx.dao.UserMapperImpl">
        <property name="sqlSession" ref="sqlSession"/>
 </bean>

6.測試的時候可以直接呼叫實現類的方法即可

    @Test
    public void queryUsersTest(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        List<User> userList = userMapper.queryUsers();
        for (User user : userList) {
            System.out.println(user);
        }
    }

最後一般是團隊合作開發可以把Spring配置檔案全部整合到一個配置檔案當中即可
在這裡插入圖片描述
總結:這樣做盡管多出了一個介面的實現類,但是仍然是利大於弊的,因為使得專案層次更加清晰,也是IOC的思想