Spring+SpringMVC+MyBatis整合詳細教程(SSM)

使用SSM(Spring、SpringMVC和Mybatis)已經有三個多月了,項目在技術上已經沒有什么難點了,基于現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地方。之前沒有記錄SSM整合的過程,這次剛剛好基于自己的一個小項目重新搭建了一次,而且比項目搭建的要更好一些。以前解決問題的過程和方法并沒有及時記錄,以后在自己的小項目中遇到我再整理分享一下。這次,先說說三大框架整合過程。個人認為使用框架并不是很難,關鍵要理解其思想,這對于我們提高編程水平很有幫助。不過,如果用都不會,談思想就變成紙上談兵了?。?!

我們提供的服務有:成都網站建設、成都網站制作、微信公眾號開發(fā)、網站優(yōu)化、網站認證、章貢ssl等。為上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的章貢網站制作公司

1、基本概念

1.1、Spring

        Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC     

        Spring MVC屬于SpringFrameWork的后續(xù)產品,已經融合在Spring Web Flow里面。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。

1.3、MyBatis

       MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

2、開發(fā)環(huán)境搭建

感興趣的朋友可以參考下這篇文章:https://www.jb51.net/article/131269.htm

3、Maven Web項目創(chuàng)建

感興趣的朋友可以參考下這篇文章:https://www.jb51.net/article/133062.htm

4、SSM整合      

        下面主要介紹三大框架的整合,至于環(huán)境的搭建以及項目的創(chuàng)建,參看上面的博文。這次整合我分了2個配置文件,分別是spring-mybatis.xml,包含spring和mybatis的配置文件,還有個是spring-mvc的配置文件,此外有2個資源文件:jdbc.propertis和log4j.properties。完整目錄結構如下(最后附上源碼下載地址,不建議直接使用源碼,因為此教程已經有了全部代碼):

使用框架都是較新的版本:

       Spring 4.0.2 RELEASE
       Spring MVC 4.0.2 RELEASE
       MyBatis 3.2.6

4.1、Maven引入需要的JAR包

         為了方便后面說的時候不需要引入JAR包,我這里直接給出所有需要的JAR包,這都是基本的JAR包,每個包的是干什么的都有注釋,就不再多說了。

pom.xml

<properties> 
 <!-- spring版本號 --> 
 <spring.version>4.0.2.RELEASE</spring.version> 
 <!-- mybatis版本號 --> 
 <mybatis.version>3.2.6</mybatis.version> 
 <!-- log4j日志文件管理包版本 --> 
 <slf4j.version>1.7.7</slf4j.version> 
 <log4j.version>1.2.17</log4j.version> 
 </properties> 
 <dependencies> 
 <dependency> 
 <groupId>junit</groupId> 
 <artifactId>junit</artifactId> 
 <version>4.11</version> 
 <!-- 表示開發(fā)的時候引入,發(fā)布的時候不會加載此包 --> 
 <scope>test</scope> 
 </dependency> 
 <!-- spring核心包 --> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-core</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-web</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-oxm</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-tx</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-jdbc</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-webmvc</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-aop</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-context-support</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-test</artifactId> 
 <version>${spring.version}</version> 
 </dependency> 
 <!-- mybatis核心包 --> 
 <dependency> 
 <groupId>org.mybatis</groupId> 
 <artifactId>mybatis</artifactId> 
 <version>${mybatis.version}</version> 
 </dependency> 
 <!-- mybatis/spring包 --> 
 <dependency> 
 <groupId>org.mybatis</groupId> 
 <artifactId>mybatis-spring</artifactId> 
 <version>1.2.2</version> 
 </dependency> 
 <!-- 導入java ee jar 包 --> 
 <dependency> 
 <groupId>javax</groupId> 
 <artifactId>javaee-api</artifactId> 
 <version>7.0</version> 
 </dependency> 
 <!-- 導入MySQL數據庫鏈接jar包 --> 
 <dependency> 
 <groupId>mysql</groupId> 
 <artifactId>mysql-connector-java</artifactId> 
 <version>5.1.30</version> 
 </dependency> 
 <!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數據庫 --> 
 <dependency> 
 <groupId>commons-dbcp</groupId> 
 <artifactId>commons-dbcp</artifactId> 
 <version>1.2.2</version> 
 </dependency> 
 <!-- JSTL標簽類 --> 
 <dependency> 
 <groupId>jstl</groupId> 
 <artifactId>jstl</artifactId> 
 <version>1.2</version> 
 </dependency> 
 <!-- 日志文件管理包 --> 
 <!-- log start --> 
 <dependency> 
 <groupId>log4j</groupId> 
 <artifactId>log4j</artifactId> 
 <version>${log4j.version}</version> 
 </dependency> 
 <!-- 格式化對象,方便輸出日志 --> 
 <dependency> 
 <groupId>com.alibaba</groupId> 
 <artifactId>fastjson</artifactId> 
 <version>1.1.41</version> 
 </dependency> 
 <dependency> 
 <groupId>org.slf4j</groupId> 
 <artifactId>slf4j-api</artifactId> 
 <version>${slf4j.version}</version> 
 </dependency> 
 <dependency> 
 <groupId>org.slf4j</groupId> 
 <artifactId>slf4j-log4j12</artifactId> 
 <version>${slf4j.version}</version> 
 </dependency> 
 <!-- log end --> 
 <!-- 映入JSON --> 
 <dependency> 
 <groupId>org.codehaus.jackson</groupId> 
 <artifactId>jackson-mapper-asl</artifactId> 
 <version>1.9.13</version> 
 </dependency> 
 <!-- 上傳組件包 --> 
 <dependency> 
 <groupId>commons-fileupload</groupId> 
 <artifactId>commons-fileupload</artifactId> 
 <version>1.3.1</version> 
 </dependency> 
 <dependency> 
 <groupId>commons-io</groupId> 
 <artifactId>commons-io</artifactId> 
 <version>2.4</version> 
 </dependency> 
 <dependency> 
 <groupId>commons-codec</groupId> 
 <artifactId>commons-codec</artifactId> 
 <version>1.9</version> 
 </dependency> 
 </dependencies> 

4.2、Spring與MyBatis的整合

所有需要的JAR包都引入以后,首先進行Spring與MyBatis的整合,然后再進行JUnit測試,先看一個項目結構圖:

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

4.2.1、建立JDBC屬性文件

jdbc.properties(文件編碼修改為utf-8)

driver=com.mysql.jdbc.Driver 
url=jdbc:mysql://10.221.10.111:8080/db_zsl 
username=demao 
password=demao 
#定義初始連接數 
initialSize=0 
#定義最大連接數 
maxActive=20 
#定義最大空閑 
maxIdle=20 
#定義最小空閑 
minIdle=1 
#定義最長等待時間 
maxWait=60000 
4.2.2、建立spring-mybatis.xml配置文件

        這個文件就是用來完成spring和mybatis的整合的。這里面也沒多少行配置,主要的就是自動掃描,自動注入,配置數據庫。注釋也很詳細,大家看看就明白了。

spring-mybatis.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" xmlns:p="http://www.springframework.org/schema/p" 
 xmlns:context="http://www.springframework.org/schema/context" 
 xmlns:mvc="http://www.springframework.org/schema/mvc" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-3.1.xsd 
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
 <!-- 自動掃描 --> 
 <context:component-scan base-package="com.cn.hnust" /> 
 <!-- 引入配置文件 --> 
 <bean id="propertyConfigurer" 
 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
 <property name="location" value="classpath:jdbc.properties" /> 
 </bean> 
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
 destroy-method="close"> 
 <property name="driverClassName" value="${driver}" /> 
 <property name="url" value="${url}" /> 
 <property name="username" value="${username}" /> 
 <property name="password" value="${password}" /> 
 <!-- 初始化連接大小 --> 
 <property name="initialSize" value="${initialSize}"></property> 
 <!-- 連接池最大數量 --> 
 <property name="maxActive" value="${maxActive}"></property> 
 <!-- 連接池最大空閑 --> 
 <property name="maxIdle" value="${maxIdle}"></property> 
 <!-- 連接池最小空閑 --> 
 <property name="minIdle" value="${minIdle}"></property> 
 <!-- 獲取連接最大等待時間 --> 
 <property name="maxWait" value="${maxWait}"></property> 
 </bean> 
 <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> 
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
 <property name="dataSource" ref="dataSource" /> 
 <!-- 自動掃描mapping.xml文件 --> 
 <property name="mapperLocations" value="classpath:com/cn/hnust/mapping/*.xml"></property> 
 </bean> 
 <!-- DAO接口所在包名,Spring會自動查找其下的類 --> 
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
 <property name="basePackage" value="com.cn.hnust.dao" /> 
 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> 
 </bean> 
 <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx --> 
 <bean id="transactionManager" 
 class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
 <property name="dataSource" ref="dataSource" /> 
 </bean> 
</beans> 
4.2.3、Log4j的配置

      為了方便調試,一般都會使用日志來輸出信息,Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。

      Log4j的配置很簡單,而且也是通用的,下面給出一個基本的配置,換到其他項目中也無需做多大的調整。

下面給出配置文件目錄:

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

log4j.properties

#定義LOG輸出級別 
log4j.rootLogger=INFO,Console,File 
#定義日志輸出目的地為控制臺 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.Target=System.out 
#可以靈活地指定日志輸出格式,下面一行是指定具體的格式 
log4j.appender.Console.layout = org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n 
#文件大小到達指定尺寸的時候產生一個新的文件 
log4j.appender.File = org.apache.log4j.RollingFileAppender 
#指定輸出目錄 
log4j.appender.File.File = logs/ssm.log 
#定義文件最大大小 
log4j.appender.File.MaxFileSize = 10MB 
# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志 
log4j.appender.File.Threshold = ALL 
log4j.appender.File.layout = org.apache.log4j.PatternLayout 
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n 
4.2.4、JUnit測試

      經過以上步驟(到4.2.2,log4j不配也沒影響),我們已經完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試是否成功了。

4.2.4.1、創(chuàng)建測試用表

既然我們需要測試,那么我們就需要建立在數據庫中建立一個測試表,這個表建的很簡單,SQL語句為:

DROP TABLE IF EXISTS `user_t`; 
CREATE TABLE `user_t` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `user_name` varchar(40) NOT NULL, 
 `password` varchar(255) NOT NULL, 
 `age` int(4) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 
/*Data for the table `user_t` */ 
insert into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'測試','sfasgfaf',24); 
4.2.4.2、利用MyBatis Generator自動創(chuàng)建代碼

       這個可根據表自動創(chuàng)建實體類、MyBatis映射文件以及DAO接口,當然,我習慣將生成的接口名改為IUserDao,而不是直接用它生成的UserMapper。如果不想麻煩就可以不改。完成后將文件復制到工程中。如圖:

Spring+SpringMVC+MyBatis整合詳細教程(SSM)
4.2.4.3、建立Service接口和實現類

目錄結構:

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

下面給出具體的內容:

IUserService.jave

package com.cn.hnust.service; 
import com.cn.hnust.pojo.User; 
public interface IUserService { 
 public User getUserById(int userId); 
} 

UserServiceImpl.java

package com.cn.hnust.service.impl; 
import javax.annotation.Resource; 
import org.springframework.stereotype.Service; 
import com.cn.hnust.dao.IUserDao; 
import com.cn.hnust.pojo.User; 
import com.cn.hnust.service.IUserService; 
@Service("userService") 
public class UserServiceImpl implements IUserService { 
 @Resource 
 private IUserDao userDao; 
 @Override 
 public User getUserById(int userId) { 
 // TODO Auto-generated method stub 
 return this.userDao.selectByPrimaryKey(userId); 
 } 
} 
4.2.4.4、建立測試類

       測試類在src/test/java中建立,下面測試類中注釋掉的部分是不使用Spring時,一般情況下的一種測試方法;如果使用了Spring那么就可以使用注解的方式來引入配置文件和類,然后再將service接口對象注入,就可以進行測試了。
       如果測試成功,表示Spring和Mybatis已經整合成功了。輸出信息使用的是Log4j打印到控制臺。

package org.zsl.testmybatis; 
import javax.annotation.Resource; 
import org.apache.log4j.Logger; 
import org.junit.Before; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 
import com.alibaba.fastjson.JSON; 
import com.cn.hnust.pojo.User; 
import com.cn.hnust.service.IUserService; 
@RunWith(SpringJUnit4ClassRunner.class) //表示繼承了SpringJUnit4ClassRunner類 
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"}) 
public class TestMyBatis { 
 private static Logger logger = Logger.getLogger(TestMyBatis.class); 
// private ApplicationContext ac = null; 
 @Resource 
 private IUserService userService = null; 
// @Before 
// public void before() { 
// ac = new ClassPathXmlApplicationContext("applicationContext.xml"); 
// userService = (IUserService) ac.getBean("userService"); 
// } 
 @Test 
 public void test1() { 
 User user = userService.getUserById(1); 
 // System.out.println(user.getUserName()); 
 // logger.info("值:"+user.getUserName()); 
 logger.info(JSON.toJSONString(user)); 
 } 
} 

測試結果:

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

至此,完成Spring和mybatis這兩大框架的整合,下面在繼續(xù)進行SpringMVC的整合。

4.3、整合SpringMVC

         上面已經完成了2大框架的整合,SpringMVC的配置文件單獨放,然后在web.xml中配置整合。

4.3.1、配置spring-mvc.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" xmlns:p="http://www.springframework.org/schema/p" 
 xmlns:context="http://www.springframework.org/schema/context" 
 xmlns:mvc="http://www.springframework.org/schema/mvc" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-3.1.xsd 
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
 <!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 --> 
 <context:component-scan base-package="com.cn.hnust.controller" /> 
 <!--避免IE執(zhí)行AJAX時,返回JSON出現下載文件 --> 
 <bean id="mappingJacksonHttpMessageConverter" 
 class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
 <property name="supportedMediaTypes"> 
 <list> 
 <value>text/html;charset=UTF-8</value> 
 </list> 
 </property> 
 </bean> 
 <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 --> 
 <bean 
 class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
 <property name="messageConverters"> 
 <list> 
 <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉換器 --> 
 </list> 
 </property> 
 </bean> 
 <!-- 定義跳轉的文件的前后綴 ,視圖模式配置--> 
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
 <!-- 這里的配置我的理解是自動給后面action的方法return的字符串加上前綴和后綴,變成一個 可用的url地址 --> 
 <property name="prefix" value="/WEB-INF/jsp/" /> 
 <property name="suffix" value=".jsp" /> 
 </bean> 
 <!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當然如果不配,那么配置文件中也不必引入上傳組件包 --> 
 <bean id="multipartResolver" 
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
 <!-- 默認編碼 --> 
 <property name="defaultEncoding" value="utf-8" /> 
 <!-- 文件大小最大值 --> 
 <property name="maxUploadSize" value="10485760000" /> 
 <!-- 內存中的最大值 --> 
 <property name="maxInMemorySize" value="40960" /> 
 </bean> 
</beans> 
4.3.2、配置web.xml文件

         這里面對spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是為了完成SSM整合,之前2框架整合不需要在此處進行任何配置。配置一樣有詳細注釋,不多解釋了。

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
 version="3.0"> 
 <display-name>Archetype Created Web Application</display-name> 
 <!-- Spring和mybatis的配置文件 --> 
 <context-param> 
 <param-name>contextConfigLocation</param-name> 
 <param-value>classpath:spring-mybatis.xml</param-value> 
 </context-param> 
 <!-- 編碼過濾器 --> 
 <filter> 
 <filter-name>encodingFilter</filter-name> 
 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
 <async-supported>true</async-supported> 
 <init-param> 
 <param-name>encoding</param-name> 
 <param-value>UTF-8</param-value> 
 </init-param> 
 </filter> 
 <filter-mapping> 
 <filter-name>encodingFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 <!-- Spring監(jiān)聽器 --> 
 <listener> 
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
 </listener> 
 <!-- 防止Spring內存溢出監(jiān)聽器 --> 
 <listener> 
 <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
 </listener> 
 <!-- Spring MVC servlet --> 
 <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:spring-mvc.xml</param-value> 
 </init-param> 
 <load-on-startup>1</load-on-startup> 
 <async-supported>true</async-supported> 
 </servlet> 
 <servlet-mapping> 
 <servlet-name>SpringMVC</servlet-name> 
 <!-- 此處可以可以配置成*.do,對應struts的后綴習慣 --> 
 <url-pattern>/</url-pattern> 
 </servlet-mapping> 
 <welcome-file-list> 
 <welcome-file>/index.jsp</welcome-file> 
 </welcome-file-list> 
</web-app>
 4.3.3、測試

        至此已經完成了SSM三大框架的整合了,接下來測試一下,如果成功了,那么恭喜你,如果失敗了,繼續(xù)調試吧,作為程序員就是不停的與BUG做斗爭!

4.3.3.1、新建jsp頁面

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

showUser.jsp   此頁面僅輸出一下用戶名,完成一個完整的簡單流程。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <title>測試</title> 
 </head> 
 <body> 
 ${user.userName} 
 </body> 
</html> 
4.3.3.2、建立UserController類

UserController.java  控制器

package com.cn.hnust.controller; 
import javax.annotation.Resource; 
import javax.servlet.http.HttpServletRequest; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 
import com.cn.hnust.pojo.User; 
import com.cn.hnust.service.IUserService; 
@Controller 
@RequestMapping("/user") 
public class UserController { 
 @Resource 
 private IUserService userService; 
 @RequestMapping("/showUser") 
 public String toIndex(HttpServletRequest request,Model model){ 
 int userId = Integer.parseInt(request.getParameter("id")); 
 User user = this.userService.getUserById(userId); 
 model.addAttribute("user", user); 
 return "showUser"; 
 } 
} 
4.3.3.3、部署項目

輸入地址:localhost:8080/項目名稱/user/showUser?id=1

Spring+SpringMVC+MyBatis整合詳細教程(SSM)

至此,SSM三大框架的整合就完成了,在此基礎上可再添加其他功能。

源碼下載地址

總結

以上所述是小編給大家介紹的Spring+SpringMVC+MyBatis整合詳細教程(SSM),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯網站的支持!

當前名稱:Spring+SpringMVC+MyBatis整合詳細教程(SSM)
當前網址:http://bm7419.com/article6/pcgjog.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站制作搜索引擎優(yōu)化、營銷型網站建設、做網站、面包屑導航、品牌網站設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)