zoukankan      html  css  js  c++  java
  • 3.基于maven构建SSM工程案例

    3.基于maven构建SSM工程案例

    3.1需求描述

    本案例基于maven构建 SSM(Spring+SpringMVC+Mybatis)工程,通过maven坐标进行依赖管理。最终实现根据 id 查询商品信息的功能。

    3.2实现步骤分析

    1.数据库环境搭建

    1. 创建数据库ssmtest
    2. 创建商品表item

    2.maven项目构建

    1. 创建maven web项目
    2. 配置pom.xml文件
    3. 实现spring+mybatis整合
      • 创建POJO类
      • 持久层DAO接口编写
      • Mapper映射文件编写
      • 业务层Service编写
      • spring配置文件applicationContext-dao.xml编写
      • spring配置文件applicationContext-service.xml编写
    4. 加入springmvc相关配置
      • 表现层Controller编写
      • springmvc.xml文件编写
      • jsp页面编写
      • 配置web.xml文件

    3.3数据库环境搭建

    在ssmtest数据库中创建表item

    CREATE TABLE <code>item</code> (
      <code>id</code> int(11) NOT NULL auto_increment,
      <code>name</code> varchar(255) default NULL,
      <code>price</code> float default NULL,
      <code>createtime</code> datetime default NULL,
      <code>detail</code> varchar(255) default NULL,
      PRIMARY KEY  (<code>id</code>)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    3.4构建maven工程

    1. 创建maven web工程
    2. 配置pom.xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    
    <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.itheima</groupId>
        <artifactId>ssmweb</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
    
        <name>ssmweb Maven Webapp</name>
        <!-- FIXME change it to the project's website -->
        <url>http://www.example.com</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <spring.version>5.0.5.RELEASE</spring.version>
            <springmvc.version>5.0.5.RELEASE</springmvc.version>
            <mybatis.version>3.4.5</mybatis.version>
        </properties>
        <!--锁定jar版本-->
        <dependencyManagement>
            <dependencies>
                <!-- Mybatis -->
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>${mybatis.version}</version>
                </dependency>
                <!-- springMVC -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                    <version>${springmvc.version}</version>
                </dependency>
                <!-- spring -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</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-web</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-expression</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aspects</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>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jdbc</artifactId>
                    <version>${spring.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-tx</artifactId>
                    <version>${spring.version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <dependencies>
            <!-- Mybatis和mybatis与spring的整合 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.3.1</version>
            </dependency>
            <!-- MySql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.32</version>
            </dependency>
            <!-- druid数据库连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.9</version>
            </dependency>
            <!-- springMVC核心-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            <!-- spring相关 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
            </dependency>
            <!-- junit测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- jstl -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>RELEASE</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>RELEASE</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
                <version>2.3.4.RELEASE</version>
            </dependency>
    
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    
    
    
    1. 实现spring+mybatis整合

      1. 创建POJO类

        public class Item {
            private int id;
            private String name;
            private double price;
            private Date createtime;
            private String detail;
        }
        
      2. 持久层DAO接口编写

        package com.ssm.dao;
        
        import com.ssm.proj.Item;
        
        public interface ItemMapper {
            public Item findById(int id);
        }
        
        
      3. Mapper映射文件编写

        <?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.ssm.dao.ItemMapper">
            <select id="findById" parameterType="int" resultType="Item">
                select * from item where id = #{id}
            </select>
        </mapper>
        
        
      4. 业务层Service接口和实现类编写

        package com.ssm.service;
        
        import com.ssm.proj.Item;
        
        public interface ItemService {
            public Item findById(int id);
        }
        
        package com.ssm.service;
        
        import com.ssm.dao.ItemMapper;
        import com.ssm.proj.Item;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.stereotype.Service;
        import org.springframework.transaction.annotation.Transactional;
        
        @Service
        @Transactional
        public class ItemServiceImpl implements ItemService {
            @Autowired
            private ItemMapper itemMapper;
        
            @Override
            public Item findById(int id) {
                return itemMapper.findById(id);
            }
        }
        
      5. spring配置文件apllicationContext-dao.xml和application-service.xml编写

      6. 表现层的编写

      package com.ssm.controller;
      
      import com.ssm.proj.Item;
      import com.ssm.service.ItemService;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.stereotype.Controller;
      import org.springframework.ui.Model;
      import org.springframework.web.bind.annotation.PathVariable;
      import org.springframework.web.bind.annotation.RequestMapping;
      
      @Controller
      @RequestMapping("/item")
      public class ItemController {
          @Autowired
          private ItemService itemService;
      
          @RequestMapping("/showItem/{id}")
          public String findById(@PathVariable("id") int id, Model model){
              Item item = itemService.findById(id);
              model.addAttribute("item",item);
              return "item";
          }
      }
      
      1. springmvc.xml文件的编写
      <!--配置扫描器,扫描Controller-->
      <context:component-scan base-package="com.ssm.controller"/>
      
      <!--视图解析器-->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/jsp/"/>
          <property name="suffix" value=".jsp"/>
      </bean>
      
      1. jsp文件编写
      <%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
      <html>
      <head>
          <title>Title</title>
      </head>
      <body>
      ${item}
      </body>
      </html>
      
      1. 配置web.xml文件
      <!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>
      
        <!--指定Spring配置文件位置-->
        <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath*:applicationContext*.xml</param-value>
        </context-param>
      
        <!--配置Spring框架启动时使用的监听器-->
        <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!--配置SpringMVC的前端控制器-->
        <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:springmvc.xml</param-value>
          </init-param>
        </servlet>
      
        <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <url-pattern>*.do</url-pattern>
        </servlet-mapping>
      </web-app>
      
  • 相关阅读:
    JAVA中的除法运算
    虚拟内存的设置和相关问题的解决方法
    div + css + js 打造HTML的tab控件
    body居中 兼容ie和ff
    js 获取当前页面源代码
    windows系统的全部命令
    HR线条样式CSS定制
    PHP5.3.5以及Apache2.2.17安装简介
    如何使用apache在本地服务器虚拟域名来测试网站
    CakePHP常用技巧总结
  • 原文地址:https://www.cnblogs.com/coderD/p/13718519.html
Copyright © 2011-2022 走看看