1. 程式人生 > >整合SSM(Spring+SpringMVC+Mybatis)所有到的jar包和筆記

整合SSM(Spring+SpringMVC+Mybatis)所有到的jar包和筆記

1.匯入Spring、Mybatis、log4j等相關jar包

整合SSM框架需要配置如下檔案:
web.xml
applicationContext.xml(配置Spring)
springmvc-servlet.xml(配置SpringMVC)
log4j.properties(配置log輸出)
mybatis.xml(配置Mybatis)
*Mapper.xml(配置sql)

2.配置web.xml檔案

配置DispatcherServlet,引入SpringMVC檔案。

<!--配置springmvcDispatcherServlet的設定和配置對映 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param> <!-- <load-on-startup>1</load-on-startup> -->
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

配置ContextLoaderListener監聽器,引入Spring配置檔案

<!-- 配置掃描SpringIOC的資原始檔 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

配置編碼集

<!-- 配置編碼集 -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3.applicationContext.xml檔案

配置Spring掃描的包路徑

<!-- 掃描SpringIOC -->
     <context:component-scan base-package="com.ssm"></context:component-scan>

配置Mybatis,資料庫連線也配置在這裡了,沒有使用properties檔案,因為我使用properties檔案出現了型別轉換異常。

  <!-- MyBatis配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 顯式指定Mapper檔案位置 -->
          <property name="mapperLocations" value="classpath:/com/ssm/config/mybatis/sqlxml/*Mapper.xml" />
          <!-- mybatis配置檔案路徑 -->
        <property name="configLocation" value="classpath:/com/ssm/config/mybatis/mybatis.xml"/>   
    </bean>
   
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
       <constructor-arg index="0" ref="sqlSessionFactory" />
       <!-- 這個執行器會批量執行更新語句, 還有SIMPLE 和 REUSE -->
       <constructor-arg index="1" value="BATCH" />
    </bean>
   
    <!-- 掃描basePackage介面 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
     <!-- 對映器介面檔案的包路徑, -->
        <property name="basePackage" value="com.ssm.dao" />
    </bean>
   
    <!-- 使用annotation定義事務 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
    <!-- 資料來源配置, 使用Tomcat JDBC連線池 -->
    <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
        <!-- Connection Info -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;allowMultiQueries=true" />
        <property name="username" value="root" />
        <property name="password" value="x5" />
        <!-- Connection Pooling Info -->
        <property name="maxActive" value="50" />
        <property name="maxIdle" value="10" />
        <property name="minIdle" value="0" />
        <property name="defaultAutoCommit" value="false" />
    </bean>

4.配置springmvc-servlet.xml

在SpringMVC中只需要配置掃描包和檢視路徑

<!-- 掃描SpringmvcIOC -->
     <context:component-scan base-package="com.ssm.*"></context:component-scan>
     
     <!-- 配置檢視路徑 -->
     <bean
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
          <!-- 字首 -->
          <property name="prefix" value="/WEB-INF/jsp/" />
          <!-- 字尾 -->
          <property name="suffix" value=".jsp" />
     </bean>

以下為其他配置

<!-- 不處理靜態資源 -->
     <mvc:default-servlet-handler />

5.log4j.properties

配置log4j
log4j.rootLogger=INFO,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO
#log4j.logger.org.mybatis=DEBUG
log4j.logger.com.ssm.dao=DEBUG

6.配置mybatis.xml

只需要配置一句。

<settings>
          <setting name="cacheEnabled" value="true" />
     </settings>

7.*Mapper.xml

這裡配置sql

<select id="selectAll" resultType="com.ssm.bean.Book">
     select * from Book where 1=1
     
</select>

配置完成之後執行sql的時候很有可能會出現下面的問題:
十二月 22, 2017 11:19:33 上午 org.apache.tomcat.jdbc.pool.ConnectionPool init
嚴重: Unable to create initial connections of pool.
java.sql.SQLException: com.mysql.jdbc.Driver

這個問題是因為tomcat的lib包中沒有com.mysql.jdbc.Driver驅動類,
需要將mysql-connector-java-5.1.7-bin.jar包拷貝到tomcat的lib資料夾下。