SSM框架整合(Maven+Spring+SpringMVC+Mybatis+mysql 附demo实例)

来源:互联网 发布:mac 股票行情软件 编辑:程序博客网 时间:2024/05/19 03:27

SpringMVC的项目整合(Maven+Spring+SpringMVC+Mybatis+Mysql)

前言

前面介绍过几个小项目:
Maven创建Web项目
Maven+mybatis+mysql项目实践(附demo)
Spring整合MyBatis(Maven+spring+MyBatis+mysql实践附demo)

这里,我将继续进行扩展,将SpringMVC整合在一起。文章末尾附上此次实践的demo。


目录:

    • SpringMVC的项目整合MavenSpringSpringMVCMybatisMysql
      • 一Maven新建项目
      • 二整合SpringMyBatis
        • 1修改pomxml
        • 2准备数据库
        • 3新建包和类
        • 4新建包和类
      • 三整合SpringMVC
        • 1添加页面文件
        • 2添加控制层文件BookControllerjava
        • 3添加springmvc-servletxml
        • 4修改webxml
        • 5终于完成了测试一下


一、Maven新建项目

参考:http://blog.csdn.net/kevinbetterq/article/details/77967856

二、整合Spring+MyBatis

1、修改pom.xml

加载项目需要的jar(这是整个项目完整的pom.xml,其中也包含的springMVC的依赖)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.qwk</groupId>    <artifactId>spring_mybatis_1</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>war</packaging>    <dependencies>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.38</version>        </dependency>        <dependency>            <groupId>org.apache.logging.log4j</groupId>            <artifactId>log4j-core</artifactId>            <version>2.6.1</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.4.1</version>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>        </dependency>        <!-- 添加Spring-core包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!-- 添加spring-context包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!-- 添加spring-tx包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-tx</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!-- 添加spring-jdbc包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jdbc</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!-- 为了方便进行单元测试,添加spring-test包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!--添加spring-web包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!-- 添加spring-webmvc -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <!--添加aspectjweaver包 -->        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>1.8.5</version>        </dependency>        <!-- 添加mybatis与Spring整合的核心包 -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.3.0</version>        </dependency>        <!--添加spring-web包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>4.1.4.RELEASE</version>        </dependency>        <dependency>            <groupId>jstl</groupId>            <artifactId>jstl</artifactId>            <version>1.1.2</version>        </dependency>        <dependency>            <groupId>taglibs</groupId>            <artifactId>standard</artifactId>            <version>1.1.2</version>        </dependency>    </dependencies></project>

2、准备数据库

这里写图片描述

3、新建包和类

(这部分包和类和之前的项目基本相同)

4、新建包和类

(1)添加实体类Book

package com.qwk.entity;import java.io.Serializable;public class Book implements Serializable{    private static final long serialVersionUID = 1L;    private int id;    private String bookName;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getBookName() {        return bookName;    }    public void setBookName(String bookName) {        this.bookName = bookName;    }    @Override    public String toString() {        return "id: " + getId() + ",bookName: " + getBookName();    }}

(2)添加Dao层,BookDaoI.java

package com.qwk.dao;import java.util.List;import com.qwk.entity.*;public interface BookDaoI {    public List<Book> getAllBook();}

(3)添加service,BookService.java

package com.qwk.service;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.qwk.dao.BookDaoI;import com.qwk.entity.Book;@Servicepublic class BookService {    @Resource    BookDaoI bookDaoI;    public List<Book> getAllBook() {        return bookDaoI.getAllBook();    }}

(4)添加BookMapper
这里写图片描述

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.qwk.dao.BookDaoI">    <select id="getAllBook" parameterType="int" resultType="Book">        select * from tb_book     </select></mapper>

(5)添加ApplicationContext.xm和db.propertiesl文件,并注册映射
这里写图片描述

db.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNulljdbc.username=rootjdbc.password=123456

ApplicationContext.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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-4.3.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">    <!-- 引入db.properties属性文件 -->    <context:property-placeholder location="classpath:db.properties" />    <!--定义一个jdbc数据源,创建一个驱动管理数据源的bean -->    <bean id="jdbcDataSource"            class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="${jdbc.driver}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />    </bean>    <!--创建一个sql会话工厂bean,指定数据源 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!-- 指定数据源 -->        <property name="dataSource" ref="jdbcDataSource" />        <!--类型别名包,默认引入com.lmei.entity下的所有类 -->        <property name="typeAliasesPackage" value="com.qwk.entity"></property>        <!--指定sql映射xml文件的路径 -->        <property name="mapperLocations"            value="classpath:com/qwk/mapper/*Mapper.xml"></property>    </bean>    <!--自动扫描映射接口-->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <!-- 指定sql会话工厂,在上面配置过的 -->        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>        <!-- 指定基础包,即自动扫描com.lmei.dao这个包下的所有接口类 -->        <property name="basePackage" value="com.qwk.dao"></property>    </bean>    <!--自动扫描组件 -->    <context:component-scan base-package="com.qwk">        <context:exclude-filter type="aspectj" expression="com.qwk.dao.*"/>    </context:component-scan>    <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy></beans>

三、整合SpringMVC

1、添加页面文件

在WEB-INF下新建一个文件夹view,在WEB-INFO/view下新建一个文件夹Book,然后在文件夹内添加index.jsp。路径webapp/WEB-INF/view/Book/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>图书管理</title></head><body>    <div>        <h3 class="title"><span>图书管理</span></h3>               <table border="1" width="30%" class="tab">            <tr>                               <th>编号</th>                <th>书名</th>                                           </tr>            <c:forEach var="book" items="${books}">                <tr>                                      <%-- <td>${book.id}</td> --%>                    <td>${book.id}</td>                    <td>${book.bookName}</td>                                                   </tr>            </c:forEach>        </table>        </div></body></html>

2、添加控制层文件BookController.java

在controller包下,新建一个BookController.java
这里写图片描述

package com.qwk.controller;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import com.qwk.entity.Book;import com.qwk.service.BookService;@Controller@RequestMapping("/Book")public class BookController {    @Resource    BookService bookService;    @RequestMapping("/getAllBook")    public String getAllBook(Model model) {        List<Book> books = bookService.getAllBook();        for (Book book : books) {            System.out.println(book.getBookName());        }        model.addAttribute("books", books);        return "Book/index";    }}

3、添加springmvc-servlet.xml

在src/main/resources目录下新建springmvc-servlet.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: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.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-4.3.xsd        http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">    <!-- 自动扫描包,实现支持注解的IOC -->    <context:component-scan base-package="com.qwk" />    <!-- Spring MVC不处理静态资源 -->    <mvc:default-servlet-handler />    <!-- 支持mvc注解驱动 -->    <mvc:annotation-driven />    <!-- 视图解析器 -->    <bean        class="org.springframework.web.servlet.view.InternalResourceViewResolver"        id="internalResourceViewResolver">        <!-- 前缀 -->        <property name="prefix" value="/WEB-INF/view/" />        <!-- 后缀 -->        <property name="suffix" value=".jsp" />    </bean></beans>

4、修改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"    id="WebApp_ID" version="3.0">    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>    <!-- Spring容器启动监听器 -->    <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>    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <!--Spring mvc配置文件路径 -->            <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>    <!--编码过滤器 -->    <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></web-app>

5、终于完成了,测试一下

运行服务器,在浏览器访问如图url,可以看到效果:

这里写图片描述


之前遇到的问题,记录一下:

  • tomcat启动后错误:Servlet [springmvc] in web application [/spring_mybatis_1] threw load() exception
    解决:pom.xml中忘记添加spring-webmvc的依赖

  • Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core”
    解决:pom.xml添加jstl和taglib
    参考:http://www.cnblogs.com/rollenholt/archive/2012/12/23/2829866.html


最后,附上项目Demo源码,有兴趣的可以拿来看一下,因为这个demo是一步一步搭建起来的,可能有一些文件是多余的,不过不影响工程的整体运行:
https://github.com/KevinBetterQ/SpringMVC_Mybatis

阅读全文
1 0
原创粉丝点击