Maven学习笔记(五)-Maven整合SSM(spring+springMVC+Mybatis)框架

来源:互联网 发布:企业网站推广优化 编辑:程序博客网 时间:2024/05/13 00:30

博客转载至:http://blog.csdn.net/u011781521/article/details/53725788

一、所用版本与步骤

三个框架所使用的版本:

mybatis ---- 3.2.5spring ---- 4.3.3.RELEASEspring mvc ---- 4.3.3.RELEASE

其它:

junit ---- 4.8.1MySQL ---- 5.1.38log4j ---- 1.2.17c3p0 ---- 0.9.2.1mybatis-spring ---- 1.3.0  jstl ---- 1.2

SSM框架整合的一般步骤:

1.新建一个Maven WEB项目2.导入MySQL与Mybatis 依赖3.写Mybatis配置文件及实体类和映射文件4.测试(Mybatis)

5.导入Spring 依赖6.写Spring 配置文件applicationContext(引入db,c3p0DataSource,SessionFactory,事物)7.测试(Spring与Mybatis)

8.整合Spring MVC9.写Controller包与Controller类10.写Spring MVC配置文件(springmvc.xml)11.web.xml中加载配置文件(Spring,SpringMVC)

二、整合框架

项目结构:
这里写图片描述

pom.xml文件内容:

<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/maven-v4_0_0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.fendo.ssm</groupId>    <artifactId>fendo-SSM</artifactId>    <packaging>war</packaging>    <version>0.0.1-SNAPSHOT</version>    <name>fendo-SSM Maven Webapp</name>    <url>http://maven.apache.org</url>      <!-- 初始化框架的版本号 -->      <properties>          <spring.version>4.3.3.RELEASE</spring.version>      </properties>    <dependencies>      <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>3.8.1</version>        <scope>test</scope>      </dependency>           <!-- 加入ServletAPI -->          <dependency>              <groupId>javax.servlet</groupId>              <artifactId>servlet-api</artifactId>              <version>2.3</version>              <scope>provided</scope>          </dependency>          <!-- MySQL依赖 start -->          <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>              <version>5.1.38</version>          </dependency>          <!-- MySQL依赖 end -->          <!-- 加入MyBatis 依赖 start -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis</artifactId>              <version>3.2.5</version>          </dependency>          <!-- 加入MyBatis 依赖 end -->          <!-- Log4j start -->          <dependency>              <groupId>log4j</groupId>              <artifactId>log4j</artifactId>              <version>1.2.17</version>          </dependency>          <!-- Log4j end -->             <!-- 引入Spring(包含SpringMVC) 依赖 start -->          <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>          <!-- 引入Spring 依赖 end -->          <!-- 引用c3p0 依赖 start-->          <dependency>              <groupId>com.mchange</groupId>              <artifactId>c3p0</artifactId>              <version>0.9.2.1</version>          </dependency>          <!-- 引用c3p0 依赖 end-->          <!-- 引用插件依赖:MyBatis整合Spring -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis-spring</artifactId>              <version>1.3.0</version>          </dependency>          <!-- JSTL -->      <dependency>             <groupId>jstl</groupId>             <artifactId>jstl</artifactId>            <version>1.2</version>      </dependency>    </dependencies>    <build>      <finalName>fendo-SSM</finalName>      <plugins>        <!-- 加入Tomcat插件 -->          <plugin>            <groupId>org.apache.tomcat.maven</groupId>            <artifactId>tomcat7-maven-plugin</artifactId>            <version>2.2</version>             <configuration>                   <url>http://localhost:8080/manager/text</url>          <username>admin</username>            <password>admin</password>         </configuration>           </plugin>      </plugins>    </build>  </project>  

1.新建一个Maven WEB项目

在eclipse菜单栏中选择“File”—“News”—“Other”菜单项,就会打开如下对话窗口,在窗口中选择“Maven”节点下“Maven Project”条目,如下图所示:
这里写图片描述

点击Next
这里写图片描述

点击Next
这里写图片描述

点击Next
这里写图片描述

点击Finish
这里写图片描述

注:
index.jsp页面报错: The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path
这里写图片描述

原因是没加入ServletAPI所导致的,在pom.xml中加入依赖就行了。

      <!-- 加入ServletAPI -->  <dependency>      <groupId>javax.servlet</groupId>      <artifactId>servlet-api</artifactId>      <version>2.3</version>      <scope>provided</scope>  </dependency>  

2.导入MySQL与Mybatis 依赖

<!-- MySQL依赖 start -->  <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.38</version>  </dependency>   <!-- MySQL依赖 end -->  <!-- Log4j start -->  <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>1.2.17</version>  </dependency>  <!-- Log4j end -->  <!-- 加入MyBatis 依赖 start -->  <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis</artifactId>      <version>3.2.5</version>  </dependency>  <!-- 加入MyBatis 依赖 end -->  

3.写Mybatis配置文件及实体类和映射文件

新建两个包:

com.fendo.entity —-实体包
com.fendo.dao —-方法包

并在其中加入一个Person类和Person.xml的映射文件,和一个操作Person的接口类,以及一个测试类:

这里写图片描述

mySql数据库新建一个表: person
这里写图片描述

插入数据
这里写图片描述

实体类: person.java

package com.fendo.entity;  public class Person {      private int pid;      private String pname;      private int page;      private int pageIndex;      private int pageSize;      public int getPageIndex() {          return pageIndex;      }      public void setPageIndex(int pageIndex) {          this.pageIndex = pageIndex;      }      public int getPageSize() {          return pageSize;      }      public void setPageSize(int pageSize) {          this.pageSize = pageSize;      }      public Person() {          super();          // TODO Auto-generated constructor stub      }      public Person(int pid, String pname, int page) {          super();          this.pid = pid;          this.pname = pname;          this.page = page;      }      public int getPid() {          return pid;      }      public void setPid(int pid) {          this.pid = pid;      }      public String getPname() {          return pname;      }      public void setPname(String pname) {          this.pname = pname;      }      public int getPage() {          return page;      }      public void setPage(int page) {          this.page = page;      }      @Override      public String toString() {          return "Person [pid=" + pid + ", pname=" + pname + ", page=" + page + "]";      }      public Person(String pname, int page) {          super();          this.pname = pname;          this.page = page;      }     } 

SQL操作配置文件: Person.xml

<?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.fendo.dao.PersonDao">      <!-- 查询所有的数据 -->      <select id="getPersons" resultType="Person">          select * from person      </select>      <!-- 插入一条数据 -->      <insert id="addPerson" parameterType="person">          insert into person(pname,page) values(#{pname},#{page})      </insert>   </mapper>  

方法接口类: PersonDao.java

package com.fendo.dao;  import java.util.List;  import com.fendo.entity.Person;  public interface PersonDao {      public List<Person> getPersons();      public void addPerson(Person person);  } 

MyBatis配置文件-myBatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd">  <!-- 类似Hibernate配置文件: hibernate.cfg.xml --><configuration><!-- 设置别名 -->  <typeAliases>    <!-- 批量,默认别名为:类名Person或者person -->    <package name="com.fendo.entity"/>  </typeAliases>    <!--连接数据库属性  -->  <environments default="development">    <environment id="development">      <transactionManager type="JDBC"/>      <dataSource type="POOLED">        <property name="driver" value="com.mysql.jdbc.Driver"/>        <property name="url" value="jdbc:mysql://localhost:3306/test"/>        <property name="username" value="root"/>        <property name="password" value="123"/>      </dataSource>    </environment>  </environments>  <!-- 类似hibernate中的 XXX.hbm.xml映射文件 -->  <mappers>    <mapper resource="com/fendo/entity/Person.xml"/>  </mappers></configuration>

Log4j配置文件-log4j.properties

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

测试类: TestMybatis.java

package com.fendo.test;  import java.io.IOException;  import org.apache.ibatis.io.Resources;  import org.apache.ibatis.session.SqlSession;  import org.apache.ibatis.session.SqlSessionFactory;  import org.apache.ibatis.session.SqlSessionFactoryBuilder;  import org.junit.After;  import org.junit.Before;  import org.junit.Test;  import com.fendo.dao.PersonDao;  public class TestMybatis {      private SqlSession sqlSession;      @Before      public void before(){          try {              SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("myBatisConfig.xml"));              sqlSession = sqlSessionFactory.openSession();          } catch (IOException e) {              e.printStackTrace();          }      }      @After      public void after(){          sqlSession.commit();          sqlSession.close();      }      @Test      public void test(){          PersonDao personDao=sqlSession.getMapper(PersonDao.class);          System.out.println(personDao.getPersons().size());      }  }  

4.测试(Mybatis)

点击test右键Run AS —-> Junit Test

这里写图片描述

Mybatis测试成功,下载地址: http://download.csdn.net/detail/u011781521/9714668

5.导入Spring 依赖

<!-- 初始化框架的版本号 -->  <properties>      <spring.version>4.3.3.RELEASE</spring.version>  </properties>  
<!-- 引入Spring(包含SpringMVC) 依赖 start -->  <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>  <!-- 引入Spring 依赖 end -->  <!-- 引用c3p0 依赖 start-->  <dependency>      <groupId>com.mchange</groupId>      <artifactId>c3p0</artifactId>      <version>0.9.2.1</version>  </dependency>  <!-- 引用c3p0 依赖 end-->  <!-- 引用插件依赖:MyBatis整合Spring -->  <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis-spring</artifactId>      <version>1.3.0</version>  </dependency>  

6.写Spring 配置文件applicationContext(引入db,c3p0DataSource,SessionFactory,事务)

在src/main/resources下新建applicationContext.xml,以及db.properties配置文件

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:context="http://www.springframework.org/schema/context"      xmlns:mvc="http://www.springframework.org/schema/mvc"      xmlns:tx="http://www.springframework.org/schema/tx"      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          http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">      <!-- 引入db.properties -->      <context:property-placeholder location="classpath:db.properties"/>      <!-- 配置数据源c3p0 -->      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">          <property name="user" value="${uname}"></property>          <property name="password" value="${upass}"></property>          <property name="jdbcUrl" value="${url}"></property>          <property name="driverClass" value="${driver_class}"></property>          <!-- 初始化池子大小 -->          <property name="initialPoolSize" value="${initPoolSize}"></property>          <!-- 池子最大数 -->          <property name="maxPoolSize" value="${maxPoolSize}"></property>      </bean>      <!-- 配置SqlSessionFactory -->      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">          <!-- 01.引入数据源 -->          <property name="dataSource" ref="dataSource"></property>          <!-- 02.加载MyBatis配置文件 -->          <property name="configLocation" value="classpath:myBatisConfig.xml"></property>          <!-- 03.加载MyBatis映射文件 -->          <property name="mapperLocations" value="classpath:com/fendo/entity/*.xml"></property>      </bean>      <!-- 配置Dao接口的两种方法: 1.单个MapperFactoryBean  2.包里面的MapperScannerConfigurer-->      <!-- 配置PersonDao -->      <!-- <bean id="personDao" class="org.mybatis.spring.mapper.MapperFactoryBean">          <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>          <property name="mapperInterface" value="com.zking.dao.PersonDao"></property>      </bean> -->      <!-- 配置整个包中所有的Dao接口 -->      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">          <property name="basePackage" value="com.fendo.dao"></property>      </bean>  </beans>  

配置Dao接口的两种方法说明:
这里写图片描述

db.properties内容如下:

uname=root  upass=123  driver_class=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8initPoolSize=5  maxPoolSize=10  

把myBatisConfig.xml文件修改成如下:

<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE configuration    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-config.dtd">    <!-- 类似Hibernate配置文件: hibernate.cfg.xml -->  <configuration>  <!-- 设置别名 -->    <typeAliases>      <!-- 批量,默认别名为:类名Person或者person -->      <package name="com.fendo.entity"/>    </typeAliases>  </configuration>  

连接数据库属性哪些配置移到了applicationContext.xml文件中去了。

7.测试(Spring与Mybatis)

新建TestSpringMybatis测试类:

public class TestSpringMybatis {      public static void main(String[] args) {          //01.加载spring配置文件          ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");          PersonDao personDao=(PersonDao) ac.getBean("personDao");          personDao.addPerson(new Person("小小A", 10));          System.out.println(personDao.getPersons().size());      }  } 

运行输出结果如下:
这里写图片描述

spring+mybatis整合成功!!!!

8.整合Spring MVC

先写一个简单的注册页面与一个注册成功页面

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"      pageEncoding="utf-8"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <title>注册页面</title>  </head>  <body>      <form action="addPerson.action" method="post">          pname:<input type="text" name="pname"/><br/>          page:<input type="text" name="page"/><br/>          <input type="submit" value="添加"/><br/>      </form>  </body>  </html> 

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"      pageEncoding="UTF-8"%>  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>      <!-- EL表达式生效 -->  <%@ page isELIgnored="false" %>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>Insert title here</title>  </head>  <body>      <table border="1">          <tr>              <th>编号</th>              <th>姓名</th>              <th>年龄</th>          </tr>          <c:forEach items="${persons}" var="p">              <tr>                  <td>${p.pid}</td>                  <td>${p.pname}</td>                  <td>${p.page}</td>              </tr>          </c:forEach>      </table>  </body>  </html> 

这里导入了JSTL所以要在pom.xml中引入依赖

<!-- JSTL -->  <dependency>      <groupId>jstl</groupId>      <artifactId>jstl</artifactId>      <version>1.2</version>  </dependency>  

9.写Controller包与Controller类

新建一个Controler包和一个PersonController类

@Controller  public class PersonController {      @Autowired      private PersonDao personDao;      @RequestMapping("/addPerson")      public ModelAndView addPerson(Person person){          System.out.println("页面数据:"+person);          //加入数据          personDao.addPerson(person);          //查数据          List<Person> persons=personDao.getPersons();          //存起来          ModelAndView modelAndView=new ModelAndView();          modelAndView.setViewName("success");          modelAndView.addObject("persons", persons);          return modelAndView;      }  } 

10.写Spring MVC配置文件(springmvc.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">      <!-- 扫描器 -->      <context:component-scan base-package="com.fendo"></context:component-scan>      <!-- 视图解析器 -->      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">              <property name="suffix" value=".jsp"></property>              <property name="prefix" value="/"></property>      </bean>  </beans> 

11.web.xml中加载配置文件(Spring,SpringMVC)

<!DOCTYPE web-app PUBLIC   "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   "http://java.sun.com/dtd/web-app_2_3.dtd" >  <web-app>    <display-name>Archetype Created Web Application</display-name>    <!-- 加载SpringMVC -->    <!-- The front controller of this Spring Web application, responsible for handling all application requests -->    <!-- 加载Spring -->    <!-- needed for ContextLoaderListener -->      <context-param>          <param-name>contextConfigLocation</param-name>          <param-value>classpath:applicationContext.xml</param-value>      </context-param>      <!-- Bootstraps the root web application context before servlet initialization -->      <listener>          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>      </listener>      <servlet>          <servlet-name>springDispatcherServlet</servlet-name>          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>          <init-param>              <param-name>contextConfigLocation</param-name>              <param-value>classpath:springmvc.xml</param-value>          </init-param>          <load-on-startup>1</load-on-startup>      </servlet>      <!-- Map all requests to the DispatcherServlet for handling -->      <servlet-mapping>          <servlet-name>springDispatcherServlet</servlet-name>          <url-pattern>*.action</url-pattern>      </servlet-mapping>  </web-app>  

最后在依赖中加入tomcat插件

<plugins>        <!-- 加入Tomcat插件 -->          <plugin>            <groupId>org.apache.tomcat.maven</groupId>            <artifactId>tomcat7-maven-plugin</artifactId>            <version>2.2</version>                  <configuration>                       <url>http://localhost:8080/manager/text</url>                      <username>admin</username>                        <password>admin</password>                  </configuration>           </plugin>      </plugins>  

然后右键项目–>Run AS –> Run Configurations ,在maven build的goals中输入命令: tomcat7:run

这里写图片描述

点击Run

这里写图片描述

然后访问: http://localhost:8080/fendo-SSM/index.jsp

这里写图片描述

点击添加

这里写图片描述

添加成功

这里写图片描述

完整的项目地址: http://download.csdn.net/detail/u011781521/9714655

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