真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

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是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC     

        Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring MVC 分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進行定制。

1.3、MyBatis

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

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。完整目錄結(jié)構如下(最后附上源碼下載地址,不建議直接使用源碼,因為此教程已經(jīng)有了全部代碼):

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

       Spring 4.0.2 RELEASE
       Spring MVC 4.0.2 RELEASE
       MyBatis 3.2.6

4.1、Maven引入需要的JAR包

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

pom.xml

 
  
 4.0.2.RELEASE 
  
 3.2.6 
  
 1.7.7 
 1.2.17 
  
  
  
 junit 
 junit 
 4.11 
  
 test 
  
  
  
 org.springframework 
 spring-core 
 ${spring.version} 
  
  
 org.springframework 
 spring-web 
 ${spring.version} 
  
  
 org.springframework 
 spring-oxm 
 ${spring.version} 
  
  
 org.springframework 
 spring-tx 
 ${spring.version} 
  
  
 org.springframework 
 spring-jdbc 
 ${spring.version} 
  
  
 org.springframework 
 spring-webmvc 
 ${spring.version} 
  
  
 org.springframework 
 spring-aop 
 ${spring.version} 
  
  
 org.springframework 
 spring-context-support 
 ${spring.version} 
  
  
 org.springframework 
 spring-test 
 ${spring.version} 
  
  
  
 org.mybatis 
 mybatis 
 ${mybatis.version} 
  
  
  
 org.mybatis 
 mybatis-spring 
 1.2.2 
  
  
  
 javax 
 javaee-api 
 7.0 
  
  
  
 mysql 
 mysql-connector-java 
 5.1.30 
  
  
  
 commons-dbcp 
 commons-dbcp 
 1.2.2 
  
  
  
 jstl 
 jstl 
 1.2 
  
  
  
  
 log4j 
 log4j 
 ${log4j.version} 
  
  
  
 com.alibaba 
 fastjson 
 1.1.41 
  
  
 org.slf4j 
 slf4j-api 
 ${slf4j.version} 
  
  
 org.slf4j 
 slf4j-log4j12 
 ${slf4j.version} 
  
  
  
  
 org.codehaus.jackson 
 jackson-mapper-asl 
 1.9.13 
  
  
  
 commons-fileupload 
 commons-fileupload 
 1.3.1 
  
  
 commons-io 
 commons-io 
 2.4 
  
  
 commons-codec 
 commons-codec 
 1.9 
  
  

4.2、Spring與MyBatis的整合

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

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 
#定義初始連接數(shù) 
initialSize=0 
#定義最大連接數(shù) 
maxActive=20 
#定義最大空閑 
maxIdle=20 
#定義最小空閑 
minIdle=1 
#定義最長等待時間 
maxWait=60000 
4.2.2、建立spring-mybatis.xml配置文件

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

spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?> 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
4.2.3、Log4j的配置

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

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

下面給出配置文件目錄:

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 
#文件大小到達指定尺寸的時候產(chǎ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測試

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

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

既然我們需要測試,那么我們就需要建立在數(shù)據(jù)庫中建立一個測試表,這個表建的很簡單,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)建代碼

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

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

目錄結(jié)構:

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

下面給出具體的內(nèi)容:

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已經(jīng)整合成功了。輸出信息使用的是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)); 
 } 
} 

測試結(jié)果:

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

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

4.3、整合SpringMVC

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

4.3.1、配置spring-mvc.xml

配置里面的注釋也很詳細,在此就不說了,主要是自動掃描控制器,視圖模式,注解的啟動這三個。

<?xml version="1.0" encoding="UTF-8"?> 
 
  
  
  
  
  
  
 text/html;charset=UTF-8 
  
  
  
  
  
  
  
   
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
4.3.2、配置web.xml文件

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

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
 
 Archetype Created Web Application 
  
  
 contextConfigLocation 
 classpath:spring-mybatis.xml 
  
  
  
 encodingFilter 
 org.springframework.web.filter.CharacterEncodingFilter 
 true 
  
 encoding 
 UTF-8 
  
  
  
 encodingFilter 
 /* 
  
  
  
 org.springframework.web.context.ContextLoaderListener 
  
  
  
 org.springframework.web.util.IntrospectorCleanupListener 
  
  
  
 SpringMVC 
 org.springframework.web.servlet.DispatcherServlet 
  
 contextConfigLocation 
 classpath:spring-mvc.xml 
  
 1 
 true 
  
  
 SpringMVC 
  
 / 
  
  
 /index.jsp 
  
 4.3.3、測試

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

4.3.3.1、新建jsp頁面

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

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

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
 
 
  
 測試 
  
  
 ${user.userName} 
  
 
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三大框架的整合就完成了,在此基礎上可再添加其他功能。

源碼下載地址

總結(jié)

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


網(wǎng)站名稱:Spring+SpringMVC+MyBatis整合詳細教程(SSM)
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/pcgjog.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部