用IntelliJ IDEA 開發Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 並測試(2 配置spring-dao和測試)


用IntelliJ IDEA 開發Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 並測試(1 搭建目錄環境和依賴)

四:在\resources\spring 下面創建一個spring-dao.xml文件 直接用file建立就行

 

然后在到spring的官方文檔 去把xml的頭部拷過來,我們的這個版本是4.1.7.RELEASE   地址是http://docs.spring.io/spring/docs/4.1.7.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf 第五節

4.1  那么其中具體的配置是 

 

配置整合mybatis->配置數據庫的連接池->配置sqlSessionFactory對象->配置掃描DAO接口包 動態實現Dao接口 並且注入到Spring容器中

(一) 配置mybatis 這個時候需要先在resource下面建立jdbc.properties 的文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/peakfortake?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
 
        

然后mybatis的配置是:

 
        
    <!-- 配置整合mybatis-->
    <!-- 配置數據庫-->
    <!--  <context:property-placeholder location="classpath:jdbc.properties"/>-->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath*:jdbc.properties</value>
            </list>
        </property>
    </bean>
 
        
(二) 配置配置數據庫的連接池
 
        
 <!--配置數據庫的連接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 配置鏈接屬性-->
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${username}"/>
        <property name="password" value="${password}"/>

        <!--配置c3p0連接池的私有屬性-->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <!--關閉鏈接后不自動commit-->
        <property name="autoCommitOnClose" value="false"/>
        <property name="checkoutTimeout" value="1000"/>
        <!--獲取連接失敗重試次數-->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>
 
        

配置sqlSessionFactory對象

這個時候需要先在resource下面建立mybatis-config.xml 的文件
<?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>
    <!--配置全局屬性-->
    <settings>
        <!-- 使用JDBC 獲取數據庫自增  -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 使用列別名替換獵魔 默認是true-->
        <setting name="useColumnLabel" value="true"/>
        <!--開啟駝峰命名轉換-->
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>

</configuration>
 
        

在配置sqlsessionfactory  

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入數據庫連接池-->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Mybatisq全局文件:-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>

        <!-- 掃描entity包-->
        <property name="typeAliasesPackage" value="com.peakfortake.entity"/>
        <!-- 掃描sql配置文件-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

其中 <property name="dataSource" ref="dataSource"/>  對應的是數據庫的連接池

當mapper中沒有文件的時候 *.xml 會變成紅色 屬於正常情況

 

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 給出掃描Dao接口包-->
        <property name="basePackage" value="com.peakfortake.dao"/>
    </bean>

 

整個過程中一定要主要掃描包的位置 所以何起來的配置是spring-dao.xml的文件是

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 配置整合mybatis-->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath*:jdbc.properties</value>
            </list>
        </property>
    </bean>

    <!--配置數據庫的連接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 配置鏈接屬性-->
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${username}"/>
        <property name="password" value="${password}"/>

        <!--配置c3p0連接池的私有屬性-->
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <!--關閉鏈接后不自動commit-->
        <property name="autoCommitOnClose" value="false"/>
        <property name="checkoutTimeout" value="1000"/>
        <!--獲取連接失敗重試次數-->
        <property name="acquireRetryAttempts" value="2"/>
    </bean>

    <!-- 配置sqlSessionFactory對象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入數據庫連接池-->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Mybatisq全局文件:-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>

        <!-- 掃描entity包-->
        <property name="typeAliasesPackage" value="com.peakfortake.entity"/>
        <!-- 掃描sql配置文件-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- 配置掃描DAO接口包 動態實現Dao接口 並且注入到Spring容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 給出掃描Dao接口包-->
        <property name="basePackage" value="com.peakfortake.dao"/>
    </bean>


</beans>

這個時候的目錄結構是

五:在entity和dao層中添加方法 在mapper中加入sql語句

我的entity 的實體是:

 

我的dao層的接口是

我的mapper中的xml是:

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

<mapper namespace="com.peakfortake.dao.TestUserDao">

    <select id="getUser" resultType="TestUser">
        SELECT *
        FROM testuser
    </select>

    <insert id="addUser" parameterType="TestUser">
        INSERT INTO testuser(username,password)
        VALUE (#{username},#{password})
    </insert>
</mapper>

 

六:測試
編寫測試類

package org.demo.dao;

import org.demo.entity.TestUser;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;
import java.util.List;

/**
 * 配置Spring 和junit整合 junit啟動時加載springIOC容器
 * Created by 草帽boy on 2016/11/28.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml"})
public class TestUserDaoTest {

    @Resource
    private TestUserDao testUserDao;

    @Test
    public void tt(){
      System.out.print( testUserDao.getUser() );
    }

    @Test
    public void tAdd(){
        TestUser t = new TestUser("sdsd","sdsd");
        testUserDao.addUser(t);
    }

}

結果:

表示你的Mybatis框架整合成功。。。。

 用IntelliJ IDEA 開發Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring並測試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM