利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)

前言

  此种方式已过时,不再推荐,当下推荐方式:自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

  本文旨在利用 maven 搭建 ssm 环境,而关于 maven 的具体内容,大家可以去阅读《Maven 实战》。其实园内这方面文章已有不少,那么为什么我还要重复造轮子呢?我只是想记录自己的实践过程罢了,附带着给别人以参考。对于别人的博文,看了固然好,要是能付之实践,那就更好了!

  一直在对整个工程做一些配置上的优化,具体代码可以从我的 github下载

  基于目前 spring-boot 的火热,工程慢慢往 springboot 上转,码云地址:https://gitee.com/youzhibing/spring-boot-2.0.3

maven 搭建

  安装过程挺简单的,去 apache 下载 apache-maven 的 zip 包,解压到一个目录下,如下图

  接下来配置 windows 环境,右击我的电脑 --》属性 --》高级系统设置 --》环境变量 --》系统变量 --》新建,如下图

  就是你解压的 maven 的 home 目录;接着编辑系统变量的 Path,如图

  其实跟配置 java 环境是一样的,最后几个连续确定之后就好了,这几个确定一定要点,不然配置不会保存,更不会生效! home 路径一定要写自己的,别搬我的呀!路径最好是拷贝,手动输入太容易出错了。

  接下来验证环境是否配置成功,打开命令行,输入 mvn -v 如果出现下图的信息,那么恭喜你,配置成功了!当然,信息可能有些许出入,如版本不同等,这些不用在意。

Eclipse(java ee 版) 集成 maven

  一般而言,新的 eclipse 都已经集成了 maven,如果没有那么就安装,点击 eclipse 菜单栏 Help->Eclipse Marketplace 搜索关键字 maven 到插件 Maven Integration for Eclipse 并点击安装即可,接下来将 eclipse 集成的 maven 换成我们自己的,而不用 eclipse 自带的,重新定位,点击 Window -> Preference -> Maven -> Installation -> Add 进行设置,如下图

  设置完成,那么 eclipse 配置 maven 就完成了,myeclipse 配置和这个是一样的。

创建 ssm 项目

  选择建立 Maven Project 选择 File -> New -> Other,在 New 窗口中选择 Maven -> Maven Project;点击 next,如下图

  选择项目路径,如下图,然后 next

  

  选择项目类型 选择 Artifact Id 为 maven-archetype-webapp 那一项,如下图

  输入 Group ID 和 Artifact ID,以及 Package,具体 Group ID 和 Artifact ID 代表什么,可以去阅读《Maven 实战》,Group ID 相当于一个组织,而 Artifact ID 相当于这个组织下的一个具体项目,Packege 的话会根据你的 Group ID 和 Artifact ID 生成一个默认的名称,就用默认的就可以,如下图

  点 finish 之后,项目结构如下图

  若目录结构和上面的有差别,那么将 perspective 改成 Java 模式就好了。上面的目录结构离标准的 maven web 结构还有一点差别,少了一个文件夹 src/test/resources,我们手动创建下,右键项目根目录点击 New -> Source Folder,建出这个文件夹,如下图:

  Finish 之后,项目结构图如下所示:

  把项目变成 Dynamic Web 项目右键项目,properties --》Project Facets,点击 Convert to faceted fro,勾上 Dynamic Web Module,并将 Version 为 2.3。(3.0 为 Java7 的)。

  设置部署程序集 (Web Deployment Assembly)
        上面步骤设置完成后,点击 OK,再右键项目,选择 properties --》Deployment Assembly,如下图

  此处列表是,部署项目时,文件发布的路径。

        (1)我们删除 test 的两项,因为 test 是测试使用,并不需要部署。

        (2)设置将 Maven 的 jar 包发布到 lib 下。

        Add -> JavaBuild Path Entries -> Maven Dependencies -> Finish

        设置完成效果图

构建框架

  在 pom.xml 中添加所需要的 jar 包,内容如下图

<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.lee.mvnbook</groupId>
    <artifactId>maven-ssm-web</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>maven-ssm-web Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <properties>
        <!-- spring 版本号 -->
        <spring.version>4.0.2.RELEASE</spring.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencies>
        <!-- spring 核心包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-oxm&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-jdbc&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-test&lt;/artifactId&gt;
        &lt;version&gt;${spring.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;!-- 添加MyBatis依赖 --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
        &lt;artifactId&gt;mybatis&lt;/artifactId&gt;
        &lt;version&gt;3.3.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;mysql&lt;/groupId&gt;
        &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
        &lt;version&gt;5.1.38&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;!-- 阿里巴巴的数据库连接池 --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.alibaba&lt;/groupId&gt;
        &lt;artifactId&gt;druid&lt;/artifactId&gt;
        &lt;version&gt;1.0.26&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;!-- spring结成mybatis --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
        &lt;artifactId&gt;mybatis-spring&lt;/artifactId&gt;
        &lt;version&gt;1.2.3&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;!-- jsp标准标签库 --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
        &lt;artifactId&gt;jstl&lt;/artifactId&gt;
        &lt;version&gt;1.2&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;log4j&lt;/groupId&gt;
        &lt;artifactId&gt;log4j&lt;/artifactId&gt;
        &lt;version&gt;1.2.16&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
        &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
        &lt;version&gt;1.6.1&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
        &lt;artifactId&gt;slf4j-nop&lt;/artifactId&gt;
        &lt;version&gt;1.6.4&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;junit&lt;/groupId&gt;
        &lt;artifactId&gt;junit&lt;/artifactId&gt;
        &lt;version&gt;4.7&lt;/version&gt;
        &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;build&gt;
    &lt;finalName&gt;maven-ssm-web&lt;/finalName&gt;
&lt;/build&gt;

</project>

View Code

  如果依赖不知道怎么写,比如 groupId、artifactId、version 不知道填什么,那么直接上http://search.maven.org/搜,对应着填写就可以了,如下图

  保存 pom.xml,maven 就会帮我们下载我们配置的所有 jar 包了,jar 包依赖的 jar 包也会自动下载,是不是很方便!当然,这个下载可能需要较长的时间,不要急,当 eclipse 右下角的百分比进度没有了,就下载好了。jar 包下载完成后,项目结构图如下

  配置文件

  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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SSM configuration</display-name>
    <!-- 解决工程编码过滤器 -->
    <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>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
&lt;!-- 配置文件所在位置 --&gt;
&lt;context-param&gt;
    &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
    &lt;param-value&gt;classpath:spring.xml,classpath:mybatis-spring.xml&lt;/param-value&gt;
&lt;/context-param&gt;
&lt;!-- Spring配置(监听器) --&gt;
&lt;listener&gt;
    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
&lt;/listener&gt;

&lt;!-- SpringMVC配置 --&gt;
&lt;servlet&gt;
    &lt;servlet-name&gt;springDispatcherServlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
    &lt;init-param&gt;
        &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
        &lt;param-value&gt;classpath:spring-mvc.xml&lt;/param-value&gt;
    &lt;/init-param&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
    &lt;servlet-name&gt;springDispatcherServlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;/&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

&lt;welcome-file-list&gt;
  &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
  &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

</web-app>

View Code

  spring.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:aop="http://www.springframework.org/schema/aop" 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.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop.xsd
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx.xsd">
&lt;!-- 自动注入 --&gt;
&lt;context:component-scan base-<span style="color: rgba(0, 0, 255, 1)">package</span>="com.huawei.service.impl" /&gt;
&lt;!-- 加载properties文件  --&gt;
&lt;!--  &lt;bean id="configProperties" <span style="color: rgba(0, 0, 255, 1)">class</span>="org.springframework.beans.factory.config.PropertiesFactoryBean"&gt;
    &lt;property name="locations"&gt;
        &lt;list&gt;
            &lt;value&gt;classpath:mysqldb.properties&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
&lt;/bean&gt; --&gt;

</beans>

View Code

  mybatis-spring.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:aop="http://www.springframework.org/schema/aop" 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.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop.xsd
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx.xsd">
&lt;!-- 配置数据源 --&gt;
&lt;bean id="dataSource" <span style="color: rgba(0, 0, 255, 1)">class</span>="com.alibaba.druid.pool.DruidDataSource"&gt;
    &lt;!-- 基本属性 url、user、password --&gt;  
    &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;  
    &lt;property name="url" value="jdbc:mysql://192.168.1.100:3306/mybatis" /&gt;  
    &lt;property name="username" value="root" /&gt;  
    &lt;property name="password" value="root" /&gt;  
    &lt;property name="initialSize" value="1" /&gt;  
    &lt;property name="minIdle" value="1" /&gt;   
    &lt;property name="maxActive" value="20" /&gt;  
    &lt;property name="maxWait" value="60000" /&gt;
    &lt;!-- 超过时间限制是否回收 --&gt;
    &lt;property name="removeAbandoned" value="true" /&gt;
    &lt;!-- 超过时间限制多长; --&gt;
    &lt;property name="removeAbandonedTimeout" value="180" /&gt;
    &lt;!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --&gt;
    &lt;property name="timeBetweenEvictionRunsMillis" value="60000" /&gt;
    &lt;!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --&gt;
    &lt;property name="minEvictableIdleTimeMillis" value="300000" /&gt;
    &lt;!-- 用来检测连接是否有效的sql,要求是一个查询语句--&gt;
    &lt;property name="validationQuery" value="SELECT 1" /&gt;
    &lt;!-- 申请连接的时候检测 --&gt;
    &lt;property name="testWhileIdle" value="true" /&gt;
    &lt;!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --&gt;
    &lt;property name="testOnBorrow" value="false" /&gt;
    &lt;!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能  --&gt;
    &lt;property name="testOnReturn" value="false" /&gt;
&lt;/bean&gt;

&lt;!-- Mybatis文件 --&gt;
&lt;bean id="sqlSessionFactory" <span style="color: rgba(0, 0, 255, 1)">class</span>="org.mybatis.spring.SqlSessionFactoryBean"&gt;
    &lt;property name="configLocation" value="classpath:mybatis-config.xml" /&gt; 
    &lt;property name="dataSource" ref="dataSource" /&gt;
    &lt;!-- 映射文件路径 --&gt;
    &lt;!--  &lt;property name="mapperLocations" value="com/huawei/mapping/*.xml" /&gt;--&gt;
&lt;/bean&gt;

&lt;bean <span style="color: rgba(0, 0, 255, 1)">class</span>="org.mybatis.spring.mapper.MapperScannerConfigurer"&gt;
    &lt;property name="basePackage" value="com.huawei.dao" /&gt;
    &lt;property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /&gt;
&lt;/bean&gt;

&lt;!-- 事务管理器 --&gt;
&lt;bean id="transactionManager"
    <span style="color: rgba(0, 0, 255, 1)">class</span>="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
&lt;/bean&gt;

&lt;tx:annotation-driven transaction-manager="transactionManager" /&gt;

</beans>

View Code

  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.0.xsd  
     http://www.springframework.org/schema/context  
     http://www.springframework.org/schema/context/spring-context-3.0.xsd  
     http://www.springframework.org/schema/mvc  
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
     ">
&lt;!-- 启用spring mvc 注解 --&gt;
&lt;context:annotation-config /&gt;

&lt;!-- 设置使用注解的类所在的jar包 --&gt;
&lt;context:component-scan base-<span style="color: rgba(0, 0, 255, 1)">package</span>="com.huawei.controller" /&gt;

&lt;!-- 完成请求和注解POJO的映射 --&gt;
&lt;bean <span style="color: rgba(0, 0, 255, 1)">class</span>="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /&gt;

&lt;!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --&gt;
&lt;bean <span style="color: rgba(0, 0, 255, 1)">class</span>="org.springframework.web.servlet.view.InternalResourceViewResolver"<span style="color: rgba(0, 0, 0, 1)">
    p:prefix</span>="/" p:suffix=".jsp" /&gt;

</beans>

View Code

   mybatis-config.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">  

<configuration>
<!-- 全局别名设置,在映射文件中只需写别名,而不必写出整个类路径 -->
<typeAliases>
<typeAlias type="com.huawei.model.Person" alias="Person"/>
</typeAliases>
<mappers>
<mapper resource="com/huawei/mapping/PersonMapper.xml" />
</mappers>
</configuration>

View Code

  log4j.properties

log4j.rootLogger=DEBUG, stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
View Code

  mysqldb.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.100:3306/mybatis
jdbc.username=root
jdbc.password=root
jdbc.initialSize=1
jdbc.minIdle=1
jdbc.maxActive=20
jdbc.maxWait=60000
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=180
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.minEvictableIdleTimeMillis=300000
jdbc.validationQuery=SELECT 1
jdbc.testWhileIdle=true
jdbc.testOnBorrow=false
jdbc.testOnReturn=false
View Code

   项目结构图如下

  java 文件与 jsp 文件

  PersonController.java

package com.huawei.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.huawei.model.Person;
import com.huawei.service.IPersonService;

@Controller
@RequestMapping("/personController")
public class PersonController {

</span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> IPersonService personService;

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> IPersonService getPersonService() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> personService;
}

@Autowired
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setPersonService(IPersonService personService) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.personService =<span style="color: rgba(0, 0, 0, 1)"> personService;
}

@RequestMapping(</span>"/showPerson"<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String showPersons(Model model){
    List</span>&lt;Person&gt; persons =<span style="color: rgba(0, 0, 0, 1)"> personService.loadPersons();
    model.addAttribute(</span>"persons"<span style="color: rgba(0, 0, 0, 1)">, persons);
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> "showperson"<span style="color: rgba(0, 0, 0, 1)">;
}

}

View Code

  PersonMapper.java

package com.huawei.dao;

import java.util.List;

import com.huawei.model.Person;

public interface PersonMapper {
/**
* 插入一条记录
*
@param person
*/
void insert(Person person);

</span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
 * 查询所有
 * </span><span style="color: rgba(128, 128, 128, 1)">@return</span>
 <span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
List</span>&lt;Person&gt;<span style="color: rgba(0, 0, 0, 1)"> queryAll();

}

View Code

  PersonMapper.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.huawei.dao.PersonMapper">
    <!-- 查询所有 person -->  
    <select id="queryAll" resultType="Person" >  
        select * from person  
    </select>
</mapper>
View Code

  Person.java

package com.huawei.model;

/**

  • person 实体
  • @author Administrator

*/
public class Person {

</span><span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> id;
</span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> String name;
</span><span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> age;

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> getId() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> id;
}
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span> setId(<span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> id) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.id =<span style="color: rgba(0, 0, 0, 1)"> id;
}
</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String getName() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> name;
}
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setName(String name) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.name =<span style="color: rgba(0, 0, 0, 1)"> name;
}
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> getAge() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> age;
}
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span> setAge(<span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> age) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.age =<span style="color: rgba(0, 0, 0, 1)"> age;
}

@Override
</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String toString() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> "Person [id=" + id + ", name=" + name + "]"<span style="color: rgba(0, 0, 0, 1)">;
}

}

View Code

  IPersonService.java

package com.huawei.service;

import java.util.List;

import com.huawei.model.Person;

public interface IPersonService {

</span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
 * 加载全部的person
 * </span><span style="color: rgba(128, 128, 128, 1)">@return</span>
 <span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
List</span>&lt;Person&gt;<span style="color: rgba(0, 0, 0, 1)"> loadPersons();

}

View Code

  PersonServiceImpl.java

package com.huawei.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.huawei.dao.PersonMapper;
import com.huawei.model.Person;
import com.huawei.service.IPersonService;

@Service("personService")
public class PersonServiceImpl implements IPersonService {

</span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> PersonMapper personMapper;

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> PersonMapper getPersonMapper() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> personMapper;
}
@Autowired
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setPersonMapper(PersonMapper personMapper) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.personMapper =<span style="color: rgba(0, 0, 0, 1)"> personMapper;
}

@Override
</span><span style="color: rgba(0, 0, 255, 1)">public</span> List&lt;Person&gt;<span style="color: rgba(0, 0, 0, 1)"> loadPersons() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> personMapper.queryAll();
}

}

View Code

  showperson.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
     pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <!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=ISO-8859-1">
        <title>person list</title>
    </head>
    <body>
        <table>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
            <c:forEach items="${persons}" var="person">
                <tr>
                    <td>${person.name}</td>
                    <td>${person.age}</td>
                </tr>
            </c:forEach>
        </table>
    </body>
</html>
View Code

mysql 数据库表

最终效果

  

  那么恭喜你,也恭喜我,搭建 ssm 成功了!

后话

  用心的小伙伴应该发现了,前面的 windows 配置 maven 和我们用 eclipse 搭建 ssm 没有一点关系,确实和 ssm 搭建没有什么卵关系,我写出来是为什么了,就是有时候我们不用 IDE 工具,而在 dos 命令下利用 maven 搭建我们的项目的时候,那么 windows 配置 maven 就需用到了!

  搭建过程中如果有什么问题,可以试着在评论区找答案,或者在关于利用 maven 搭建 ssm 的博客,我们一起来探讨下问的最多的问题中找答案