SSM项目之电商项目easymall(一)

一 环境准备

软件环境:

   1 jdk1.8
       JAVA_HOME:是给软件用的,各种启动的软件都会寻找JAVA_HOME的环境变量;
       Path:给windows用的;
   2 eclipse marS2/neon
       解压的无中文路径,无空格的文件夹中;防止读取相对路径时出现乱码
       如果当前系统的JAVA_HOME对应版本是支持neon的启动的,那么就可以直接启动eclipse
       设置workspace,无中文路径,无空格
   3 maven3.5
       解压到无中文路径,无空格的文件夹即可(后续会介绍,配置,和使用等)
   4 tomcat 9
      tomcat7 没有自动处理乱码,tomcat8以上的版本,无需管理乱码(servlet没有验证)
   5 mysql5.5
       如果是5.5无需变动,如果不是,需要删除重新安装;5.0无法导入5.5备份的数据;
       删除:只装过一次5.0,直接删除服务(控制面板的卸载程序)
       安装sqlYog,数据库客户端;

二 分析SSM三大框架

Spring框架:
    
工厂类创建对象
    加在xml的标签创建对象
    通过配置文件扫描注解
    @Controller 控制层对象
    @Service 业务层对象
    @Component 普通对象
    对象的创建交给Spring
    控制反转: 对象我框架包了
    
    java基础复用的方法
    方法封装被调用
    子继承父类,直接调用
    Spring框架节点
    Spring管理的所有对象中相互注入使用
    @Resource
    @Autowired
    注入依赖:哪用对象,跟我说,注入就直接用
    
Springmvc
    
处理页面和程序的交互(升级了servlet的使用)
    前端控制器(springmvc,dispatcherServlet,映射mapping "/")
    适配器映射器(handleMapping)(寻找RequestMapping的接收地址)
    适配器协调器(handleAdapter):转给handler
    处理器(handler): 调用RequestMapping的方法所在类的对象,执行方法,返回
    字符串渲染: WEB-INF/views/index.jsp
    显式页面想添加数据: Model 模板对象 addAttribute
    
    Springmvc为什么和spring整合?
        1 实现代码中的三层结构;controller,service,mapper依赖注入
        2 处理持久层困难(spring可以整合mybatis)
    Springmvc是怎么整合的?
        需要:看到配置文件了
        不需要:无缝整合;controller直接注入service使用,形成service调用mapper(前提是spring整合了mybatis),三层项目结构
        
mybatis:
  
 JDBC
    mybatis功能:
        自动封装(提交的参数,返回的结果,无需手动jdbc处理resultSet)
        sql语句是通过映射文件xml绑定(bind)接口mapper的同名方法;
        配置文件
        驼峰命名,分页插件
    
    和spring整合
        配置文件(spring_mybatis)
        datasource:数据库连接中的参数,url,username,password,数据库连接池
        sqlSession:datasource
    
    整合一起使用的SSM框架的配置文件
    spring:管理spring容器的配置文件
    spring-mvc:springmvc配置文件
    mybatis:mybatis持久层配置文件
    spring-mybatis:整合spring和mybatis的配置文件
   

三 将easymall项目与SSM框架整合

3.1框架SSM结构  

3.2数据库的设计

  创建easymalldb数据库

1 商品相关--t_product
        ○ 展示全部商品的分页信息
        ○ 某个商品的信息
        ○ 后台的商品管理增删改查
  商品表格

  •  product_id:商品的id,全局唯一,主键,char,UUID
  • product_name: 商品的名称,varchar
  • product_price: 商品价格 double
  • product_category: 商品类目
  • product_imgurl: 商品图片的url连接地址
  • product_num: 商品的库存
  • product_description: 商品的简介

2 用户相关---t_user
      ? 登录 (查询单个user)
      ? 注册 (新增)
      ? 注册的用户名校验(查询)
  用户表格

  •   user_id: 全局唯一的主键,uuid
  • user_name:用户名称
  • user_password:密码
  • user_nickname: 昵称
  • user_email: 用户邮箱
  • user_type: 用户类型,于权限有关;

3 购物车相关--t_cart
   ? 添加购物车
   ? 查询当前用户的所有购物车商品
   ? 修改购物车数量
   ? 删除购物车

   购物车表格

  • id:购物车id int
  • user_id:当前商品属于的用户id
  • product_id:当前商品id
  • product_image:商品的图片
  • product_name:商品名称
  • product_price:商品价钱
  • num:购物车中商品数量
  1. user_id
  2. product_id
  3. 复合主键;通过2个字段的同时使用,可以唯一的定位
  4. 到一条购物车商品数据;

4 订单相关--t_order和t_order_item(主从表的关系,order为主,item为从,1对多的关系)
     ? 我的全部订单
    ? 新增订单
    ? 删除订单
    主表t_order

  • order_id: 主键,也是t_order_item关联的键
  • order_money: 订单支付金额
  • order_receiverinfo: 收信人信息
  • order_paystate: 支付状态
  • order_time:创建时间
  • user_id: 用户关联的

表格代码 可以直接通过sqlyong导入数据库

 

四 maven工具管理项目框架

 4.1web项目的管理方式的弊端:
        myeclipse生成一个web应用的项目结构,servlet直接开发代码
        如果用到三大框架的内容:
        1 jar的管理不规范
            把jar包先找到,完全是凭借测试和经验完成的;
        2 直接整合外界的第三方tomcat进行war包的运行

3 项目管理的结构
            src:代码
            webroot:web应用相关
            ssm框架的配置文件????
            src管理配置文件;

 4.2 maven介绍  

  Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件是一个软件,并且可以实现各种项目结构的管理功能--工具;
        快速搭建项目(java普通工程,web应用工程)
        可以通过引入的各种插件完成丰富的外接功能(例如maven的tomcat插件可以直接在项目内部启动插件的tomcat运行web工程)
        对工程的管理结构非常严格:
            java工程:
            src/main/java:编写代码的文件夹
            src/main/resouces:配置文件(ssm框架,properties等)
            src/test/java:测试代码,在打包时不会进行包装
            pom.xml:通过一小段描述来管理项目(管理依赖的jar包,是通过dependency完成)
            web应用工程:
            和java工程一样:
            main的文件夹下,有webapp的管理,web应用所在的路径;
    有了maven就可以方便快速的搭建我们想要的各种工程结构,从而通过对pom文件中描述信息的修改(标签),完成项目的各种管理功能;

       

五 maven的安装和环境配置

    https://www.cnblogs.com/nanlinghan/p/9968806.html

六 easymall工程的搭建

1 选择骨架(webapp)
2 web的应用结构
    src/main/java:当前easymall的ssm框架的所有运行代码都在这个文件夹
    src/main/resources: 存放配置文件的位置
    src/test/java:测试内容
3 pom的依赖
    maven主要就是管理jar包的依赖,当前SSM框架需要依赖的东西非常多;
    spring,springmvc,mybatis,一些工具的依赖;

<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.jt</groupId>
  <artifactId>easymall-ssm</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>easymall-ssm Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <!-- spring的版本号 -->
    <spring.version>4.3.7.RELEASE</spring.version>
    <!-- mybatis的版本号 -->
    <mybatis.version>3.4.5</mybatis.version>
    <!-- log日志管理 -->
    <slf4j.version>1.7.12</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <pagehelper.version>3.4.2</pagehelper.version>
    <jsqlparser.version>0.9.1</jsqlparser.version>
  </properties>
  <dependencies>
  <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
    <!-- spring context -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- spring mvc -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
      <!-- spring mvc 辅助包 jackson -->
      <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.8.1</version>
    </dependency>
      <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.1</version>
    </dependency>
    <!--servlet依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
               <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    <!-- Spring tx -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
      <!-- Spring jdbc -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
      <!-- Spring aop -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
      <!-- aspectj -->
      <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.7</version>
    </dependency>
    <!-- mybatis -->
      <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>

      <!-- mybatis-spring -->
      <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.0.8</version>
    </dependency>
      <!-- junit -->
      <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
      <!-- 阿里巴巴数据库连接池 -->
      <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.14</version>
    </dependency>
    <!-- 阿里巴巴的json工具 -->
      <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.7</version>
    </dependency>

    <!-- commons fileupload -->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.2</version>
    </dependency>
    <!-- jstl -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- Apache poi -->
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.13</version>
    </dependency>
    <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${pagehelper.version}</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>${jsqlparser.version}</version>
        </dependency>
    <!-- shiro -->
    <dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-all</artifactId>
      <version>1.2.3</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
        <plugin>
             <artifactId>maven-compiler-plugin</artifactId>
             <configuration>
                 <source>1.8</source>
                 <target>1.8</target>
             </configuration>
        </plugin>
        <plugin>
               <groupId>org.apache.tomcat.maven</groupId>
               <artifactId>tomcat7-maven-plugin</artifactId>
               <version>2.2</version>
               <configuration>
                   <port>80</port>
                   <path>/</path>
               </configuration>
        </plugin>
   </plugins>
  </build>
</project>

4 拷贝静态资源
    easymall-ssm的静态文件拷贝到当前工程中,从navigator保存

  这里要关闭eclipse自带的web前端的各种校验

  
5 准备ssm框架的配置文件
    spring本身的配置文件
    spring整合mybatis配置文件
    springmvc配置文件
    mybatis配置文件

原文地址:https://www.cnblogs.com/nanlinghan/p/9968871.html

时间: 2024-10-22 03:19:00

SSM项目之电商项目easymall(一)的相关文章

分布式电商项目(02)--后台管理系统SSM框架整合

前言:上一篇博客讲了此次分布式电商项目后台管理系统的工程的搭建,这一篇就讲一下SSM框架的整合 1.整合思路 下面说到的配置文件都需要放到manager-web工程下,因为此工程为war工程,而其它的工程都只是一个jar包,具体如下图所示 1.1 DAO层 mybatis整合spring,通过spring管理SqlSessionFactory.mapper代理对象.需要mybatis和spring的整合包. 整合内容 对应工程 Pojo mangaer-pojo Mapper映射文件 manga

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

企业级电商项目P2P金融项目实战,企业架构师培训视频课程

15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat. Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.

从头开始 启动开源电商项目jShop

1. 引言 干了三年C#, 有了转Java 的念想,所以尝试学习一下java web,java语法本身和C#没有太多的差别,所以打算看看开源的java项目,开源的Java项目还是非常非常多的,曾经看了点 Nopcommerce的东西,确实设计的巧妙,那么就从电商项目开始,jshop是jeeshop的分支版本,在技术框架上使用spring mvc替代struts2, 页面使用freemarker替代jsp,代码可以在oschina上找到 http://git.oschina.net/dinguan

电商项目系列文档(一)

最近有幸带领团队做了一个跨境电商项目,总结了一些经验,准备形成一个系列文档,供大家分享. 第一章主要对项目的整体情况和技术选型做一个简单介绍 整体情况: 1.跨境电商项目,线上已经有运行的项目,所以需要考虑老数据导入新平台的问题 2.前端分为微信端和PC端,由于现在HTML5跨平台还不成熟,所以前端是两个独立的平台,微信使用HTML5构建,PC端使用HTML4,共用一个后台 3.项目时间紧,人员经验浅,这个就不细说了,满满都是坑. 4.项目架构是领域驱动的三层架构,即无论前后台,传递领域实体参数

C#大型电商项目优化(二)——嫌弃EF与抛弃EF

上一篇博文中讲述了使用EF开发电商项目的代码基础篇,提到EF后,一语激起千层浪.不少园友纷纷表示:EF不适合增长速度飞快的互联网项目,EF只适合企业级应用等等. 也有部分高手提到了分布式,确实,性能优化从数据库出发,初期就加索引,然后垂直拆分,水平拆分,读写分离,甚至是分布式事务,阳春白雪,格局很高.然而笔者希望通过渐进的过程来优化这个项目,我们缩小格局,从细节查看不同方案的优劣. 之前提过,使用EF最主要的原因是项目时间紧迫,EF搭建速度快,熟悉的同事也多,使用方便.这个决策确实帮助我们挺过了

java架构师课程、性能调优、高并发、tomcat负载均衡、大型电商项目实战、高可用、高可扩展、数据库架构设计、Solr集群与应用、分布式实战、主从复制、高可用集群、大数据

15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  clo

电商项目需求分析---七月实习总结

这个月,丫头很忙~~~ 七月的天,像娃娃的脸,说变就变,伴着夏的热情,小编继续着实习之路,这个月,开始了传说中的封闭式开发,经理天天请吃饭,吃的小编现在的体重都八十五斤了,要注意保持身材,咳咳,还有就是小编这辈子都不想再吃黄焖鸡米饭了,看到鸡都害怕,所以说嘛,任何事情都要有度,如果超过了这个度,后果不堪设想,上个月,也就是六月份的时候,小编简单总结了一下六月份的实习收获,一眨眼的功夫,踩到了七月份的尾巴,这个月,小编梳理了一下项目的思绪,对整个项目有了一个整体的把控,这个月的实习总结呢,就带着各

某电商项目PostgreSQL数据库备份恢复方案

某电商项目PostgreSQL数据库备份恢复方案: 下载地址:某电商项目PostgreSQL数据库备份恢复方案