自我學習SSM框架集成(一)

由於和班上大佬一塊兒合做了一個小項目,大佬是老師實驗室的,在實驗室期間自學了不少東西,因此爲了跟上大佬的腳步一塊兒合做,也得自學一些玩意兒SSM全家桶css

由於之前沒有學過servelet因此先從Servelet入手,而後在學Spring,Spring MVC,Mybatis。html

對於這三個已經利用零零散散的時間在How2j上不繫統的學習了使用,可是今天在準備把三個整合成SSM框架時,發現前面學的有的又已經忘了。因此爲了強化記憶,特此寫下整合博客方便本身理解java

 

因此,先實現使用SSM框架來查詢單表數據,並顯示mysql

 

1、關於IDEA建立SSM工程(http://how2j.cn/k/idea/idea-maven-idea-ssm-create/1397.html)web

注:按照教程建立會發現SSM工程中並無resource這個文件夾,這個文件夾不是普通文件夾而是resource專用文件夾spring

具體建立過程    https://blog.csdn.net/qq_37869130/article/details/82380529sql

 

2、實現效果數據庫

輸入地址,查詢單表數據並用表格顯示express

 

3、實現mybatis

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xmlns="http://java.sun.com/xml/ns/javaee"
 4          xmlns:web="http://java.sun.com/xml/ns/javaee"
 5          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
 6 
 7   <!-- spring的配置文件-->
 8   <context-param>
 9     <param-name>contextConfigLocation</param-name>
10     <param-value>classpath:applicationContext.xml</param-value>
11   </context-param>
12   <listener>
13     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
14   </listener>
15 
16 
17   <!-- spring mvc核心:分發servlet -->
18   <servlet>
19     <servlet-name>mvc-dispatcher</servlet-name>
20     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
21     <!-- spring mvc的配置文件 -->
22     <init-param>
23       <param-name>contextConfigLocation</param-name>
24       <param-value>classpath:springMVC.xml</param-value>
25     </init-param>
26     <load-on-startup>1</load-on-startup>
27   </servlet>
28   <servlet-mapping>
29     <servlet-name>mvc-dispatcher</servlet-name>
30     <url-pattern>/</url-pattern>
31   </servlet-mapping>
32 
33 </web-app>

1.當輸入/listCategory時,SSM將會把這個請求交由web.xml文件處理

 

 

其中,Spring mvc代碼 會將全部訪問攔截交由DispatcherServlet處理,並讓resource文件夾的SpringMVC.xml指定Controller和jsp文件的所在文件夾

   <context:annotation-config/>       <!-- 掃描Controller,並將其生命週期歸入Spring管理-->

    <context:component-scan base-package="com.how2java.controller">
          <context:include-filter type="annotation" 
          expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <mvc:annotation-driven />                                     <!--註解驅動,以使得訪問路徑與方法的匹配能夠經過註解配置-->
    
    <mvc:default-servlet-handler />                    <!--靜態頁面,如html,css,js,images能夠訪問-->


    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />                <!-- 視圖定位到/WEB/INF/jsp 這個目錄下 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

 

 2.而後用web.xml的Spring核心 的applicationContext將 數據庫加入,使框架總體能操做數據庫  

    <context:annotation-config />                   
    <context:component-scan base-package="com.how2java.service" />            經過註解,將Service的生命週期歸入Spring的管理      
 
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        配置數據源
      <property name="driverClassName"> 
          <value>com.mysql.jdbc.Driver</value> 
      </property> 
      <property name="url"> 
          <value>jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8</value> 
     
      </property> 
      <property name="username"> 
          <value>root</value> 
      </property> 
      <property name="password"> 
          <value>a123456</value> 
      </property>    
    </bean>
     
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">               掃描存放SQL語句的Category.xml          
        <property name="typeAliasesPackage" value="com.how2java.pojo" />           處理的類文件夾
        <property name="dataSource" ref="dataSource"/>                                        操做數據庫
        <property name="mapperLocations" value="classpath:com/how2java/mapper/*.xml"/>            主函數操做方法接口文件  與Mapper關聯
    </bean>
 
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">                                 掃描Mapper,並將其生命週期歸入Spring的管理
        <property name="basePackage" value="com.how2java.mapper"/>
    </bean>
     
</beans>

 

3.掃描的的Controller 裏面有攔截/listCategory方法  則由Controller進行處理

package com.how2java.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.how2java.pojo.Category;
import com.how2java.service.CategoryService;

// 告訴spring mvc這是一個控制器類
@Controller
@RequestMapping("")
public class CategoryController {
    @Autowired                        //自動配置
    CategoryService categoryService;       

    @RequestMapping("listCategory")              //攔截/listCategory
    public ModelAndView listCategory(){
        ModelAndView mav = new ModelAndView();         //建立一個模式和視圖的結合
        List<Category> cs= categoryService.list();    
        
        // 放入轉發參數
        mav.addObject("cs", cs);
        // 放入jsp路徑
        mav.setViewName("listCategory");                 //  綁定jsp文件
        return mav;                                     //  把mav返回jsp中
    }

}

注:此處的CategoryService是一個接口,而具體實現方法則是CategoryImpl中的,而CategoryImpl中的list方法則是CategoryMapper 中的,而具體的sql語句則在Category.xml文件中

其中 Category.xml的<mapper namespace="com.how2java.mapper.CategoryMapper">要寫到Mapper與其綁定

 

 

@Service代表其是一個Service

 

 

<mapper namespace="com.how2java.mapper.CategoryMapper">
        <insert id="add" parameterType="Category" >
            insert into category_ ( name ) values (#{name})    
        </insert>
        
        <delete id="delete" parameterType="Category" >
            delete from category_ where id= #{id}   
        </delete>
        
        <select id="get" parameterType="_int" resultType="Category">
            select * from   category_  where id= #{id}    
        </select>

        <update id="update" parameterType="Category" >
            update category_ set name=#{name} where id=#{id}    
        </update>
        <select id="list" resultType="Category">
            select * from   category_      
        </select>
    </mapper>

 

 

 

4.最後用listCategory.jsp的foreach循環顯示出來

c:循環獲取的單個對象    varStatus:循環的名字  

<table align='center' border='1' cellspacing='0'>
    <tr>
        <td>id</td>
        <td>name</td>
    </tr>
    <c:forEach items="${cs}" var="c" varStatus="st">              
        <tr>
            <td>${c.id}</td>
            <td>${c.name}</td>

        </tr>
    </c:forEach>
</table>
相關文章
相關標籤/搜索