SSM練習(一):框架整合要點

1,Mybatis-Config.xml

        框架整合之後,Mybatis的配置文件中,需要寫的東西就很少了。Mybatis本身是通過全局配置文件來生成SqlSessionFactory,然後得到sqlsession。在整合之後由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>
    <settings>
        <!--使用jdbc的getGeneratedKeys獲取數據庫自增主鍵值-->
        <setting name="useGeneratedKeys" value="true"/>
        <!--使用別名替換列名-->
        <setting name="useColumnLabel" value="true"/>
        <!--開啓駝峯命名轉換-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

2,Spring-dao.xml

        在寫SSM項目配置文件的時候,可以將DAO層,Service層,Web層分開寫。Mybatis是一個用來代替了原始JDBC的框架,我們將其整合部分寫在了Spring-dao.xml中。

2.1 配置數據庫連接池

2.1.1 jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cnpc?autoReconnect=true&amp;autoReconnectForPools=true
jdbc.username=root
jdbc.password=root

2.2.2在Spring-dao.xml中配置數據庫連接池

<!--1.配置數據庫配置文件路徑-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--2.配置數據庫連接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <!--c3p0連接池的私有屬性-->
    <!--c3p0連接池的私有屬性-->
    <property name="maxPoolSize" value="30"/>
    <property name="minPoolSize" value="10"/>
    <!--關閉連接後不自動commit-->
    <property name="autoCommitOnClose" value="false"/>
    <!--獲取連接超時時間-->
    <property name="checkoutTimeout" value="5000"/>
    <!--當獲取連接失敗重試次數-->
    <property name="acquireRetryAttempts" value="2"/>
</bean>

2.2 配置SQLSessionFactory

<!--配置sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--注入數據庫連接池-->
  <property name="dataSource" ref="dataSource" />
    <!--配置mybatis全局配置文件-->
  <property name="configLocation"  value="classpath:mybatis-config.xml"/>
    <!--掃描entity包,使用別名-->
    <property name="typeAliasesPackage" value="com.ccy.bean"/>
    <!--掃描sql配置文件:mapper需要的配置文件-->
    <property name="mapperLocations" value="classpath:Mapper/*.xml"/>
</bean>

2.3 配置掃描Dao接口包

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

        這裏的sqlSessionFactory可以不寫,但是必須保證會話工廠名一定要是“sqlSessionFactory”,否則不能自動掃描到。如果寫了的話可能會出現找不到${driverClassName}之類的錯誤。因爲MapperScannerConfigurer初始化在propertyPlaceholderConfigurer之前,${driverClassName}還未來得及替換。

一起學習,共同進步,有錯請指正,謝謝大家。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章