A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不太想网名 初级黑马   /  2019-7-25 14:49  /  1033 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3.1 需求描述

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

3.2 构建maven工程

1.数据库环境搭建

    ①创建数据库ssmtest



    ②创建商品表item

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

2.maven项目构建

①创建maven web项目

②配置pom.xml文件

③实现spring+mybatis整合

创建POJO类

    public class Item {
    private Integer id;
    private String name;
    private Float price;
    private Date createtime;
    private String detail;
    //省略setter、getter
    }

持久层DAO接口编写

    public interface ItemMapper {
           public Item findById(int id);
    }

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.itheima.ssm.dao.ItemMapper">
    <select id="findById" parameterType="int" resultType="item">
             select * from item where id=#{id}</select>
    </mapper>

业务层Service编写

    package com.itheima.ssm.service;
    import com.itheima.ssm.pojo.Item;
    public interface ItemService {
        public Items findById(int id);
    }

    @Service
    @Transactional
    public class ItemServiceImpl implements ItemService {
    @Autowired
    private ItemMapper itemMapper;
    public Item findById(int id) {
    return itemMapper.findById(id);
    }
    }

spring配置文件applicationContext-dao.xml编写

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:context="http://www.springframework.org/schema/context"   xmlns:p="http://www.springframework.org/schema/p"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/bean        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd       http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-4.0.xsd      http://www.springframework.org/schema/aop   http://www.springframework.org/schema/aop/spring-aop-4.0.xsd     http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-4.0.xsd      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    <!-- 数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <!-- 驱动 -->
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <!-- url -->
    <property name="url" value="jdbc:mysql://localhost:3306/ssmtest"/>
    <!-- 用户名 -->
    <property name="username" value="root"/>
    <!-- 密码 -->
    <property name="password" value="root"/></bean>
    <!-- mapper配置 --> <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!-- 数据库连接池 -->
    <property name="dataSource" ref="dataSource"/>
    <!--为指定包下的所有实体类创建别名-->
    <property name="typeAliasesPackage" value="com.itheima.ssm.pojo"/></bean>
    <!-- mapper扫描器 :用来产生代理对象-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.itheima.ssm.dao"></property>  
    </bean>
    </beans>

spring配置文件applicationContext-service.xml编写

④加入springmvc相关配置

表现层Controller编写

    @Controller
    @RequestMapping("/item")
    public class ItemController {
       @Autowired
       private ItemService itemService;
      @RequestMapping("/showItem/{id}")
      public String showItem(@PathVariable("id") int id, Model model){
            Item item = itemService.findById(id);
            model.addAttribute("item",item);
            return "item";   
      }
    }

springmvc.xml文件编写

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd       http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-4.0.xsd">    <context:component-scan base-package="com.itheima.ssm.controller"/>
    <!--  配置视图解析器的前缀和后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">           <property name="prefix“ value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    </beans>

jsp页面编写

配置web.xml文件



4.分模块构建maven工程

4.1 分模块构建maven工程分析

在现实生活中,汽车厂家进行汽车生产时,由于整个生产过程非常复杂和繁琐,工作量非常大,所以车场都会将整个汽车的部件分开生产,最终再将生产好的部件进行组装,形成一台完整的汽车。





4.2 maven工程的继承

在Java语言中,类之间是可以继承的,通过继承,子类就可以引用父类中非private的属性和方法。同样,在maven工程之间也可以继承,子工程继承父工程后,就可以使用在父工程中引入的依赖。继承的目的是为了消除重复代码。



4.3 maven工程的聚合

在maven工程的pom.xml文件中可以使用<modules>标签将其他maven工程聚合到一起,聚合的目的是为了进行统一操作。

例如拆分后的maven工程有多个,如果要进行打包,就需要针对每个工程分别执行打包命令,操作起来非常繁琐。这时就可以使用<modules>标签将这些工程统一聚合到maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程就都会被打包了。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马