ssm mysql电商项目_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:JDBCmybatis功能:

自动封装(提交的参数,返回的结果,无需手动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结构

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第1张图片

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:购物车中商品数量

user_id

product_id

复合主键;通过2个字段的同时使用,可以唯一的定位

到一条购物车商品数据;

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导入数据库(想要数据库设计sql代码留言私发,这里不支持上传)

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第2张图片

四 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的安装和环境配置

六 easymall工程的搭建

1 选择骨架(webapp)2 web的应用结构

src/main/java:当前easymall的ssm框架的所有运行代码都在这个文件夹

src/main/resources: 存放配置文件的位置

src/test/java:测试内容

3 pom的依赖

maven主要就是管理jar包的依赖,当前SSM框架需要依赖的东西非常多;

spring,springmvc,mybatis,一些工具的依赖;

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.jt

easymall-ssm

war

0.0.1-SNAPSHOT

easymall-ssm Maven Webapp

http://maven.apache.org

4.3.7.RELEASE

3.4.5

1.7.12

1.2.17

3.4.2

0.9.1

org.apache.commons

commons-lang3

3.3.2

org.springframework

spring-context

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-webmvc

${spring.version}

com.fasterxml.jackson.core

jackson-core

2.8.1

com.fasterxml.jackson.core

jackson-databind

2.8.1

javax.servlet

javax.servlet-api

3.1.0

provided

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-aop

${spring.version}

org.aspectj

aspectjweaver

1.8.7

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.3.1

mysql

mysql-connector-java

5.0.8

junit

junit

4.12

com.alibaba

druid

1.0.14

com.alibaba

fastjson

1.2.7

commons-fileupload

commons-fileupload

1.3.2

jstl

jstl

1.2

org.apache.poi

poi

3.13

com.github.pagehelper

pagehelper

${pagehelper.version}

com.github.jsqlparser

jsqlparser

${jsqlparser.version}

org.apache.shiro

shiro-all

1.2.3

maven-compiler-plugin

1.8

1.8

org.apache.tomcat.maven

tomcat7-maven-plugin

2.2

80

/

4 拷贝静态资源

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

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

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第3张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第4张图片

(需要静态资源留言)

5 准备ssm框架的配置文件

spring本身的配置文件

spring整合mybatis配置文件

springmvc配置文件

mybatis配置文件

5.1 web.xml

tomcat容器启动时会加载当前工程的web.xml文件,会根据web.xml文件中的配置,设置当前加载各种其他资源,listener,初始化参数,配置spring和springmvc配置文件

1

2 contextConfigLocation

3

4 classpath:spring/spring*.xml;5

6

7

8 指定当前tomcat启动时需要加载的配置文件,classpath=target/classes;9 成功加载配置文件之后,如果有依赖的jar包,就可以正确启动spring springmvc容器了;10

11

12 springmvc

13 org.springframework.web.servlet.DispatcherServlet

14

15 contextConfigLocation

16 classpath:spring/spring_mvc.xml

17

18 1

19

20

21 springmvc

22 /

23

创建springmvc中的dispatcherServlet,实现读取springmvc的配置文件,当前的servlet就会提供给springmvc的逻辑使用;

当前dispatcherServlet接收所有的请求地址 "/"

web.xml是通知tomcat在启动时加载所有的需要配置的文件;SSM框架

5.2 spring.xml

1

3

4

5

6

7

8

9

10 classpath:mysql.properties

11

12

13

14

15

利用加载的spring容器,创建一个PropertyPlaceHolder的对象,读取mysql.properties的数据(key-value键值对),其中的数据就是配置加载的datasource的内容,在配置的指定上进行解耦,可以修改properties变动连接数据库的信息.

扫描包的路径,所有当前工程已com.jt开始的包中只要存在注解都会被spring容器扫描到,像@Component,@Service等就会自动创建对象

5.3 spring_mvc.xml

保持当前jsp等页面资源加载成功js,css等内容

springmvc扫描的spring创建的对象,完成和spring的整合;requestMapping映射就可以加载所有com.jt.easymall.controller的类中;

启动responseBody requestMapping requestParam requestBody

页面渲染时拼接的前后缀名称,/WEB-INF/views/保存着所有页面;

MultipartFile是springmvc的包中的类,处理页面上传的文件;

大小定义,和懒加载,接收的实际上是流对象;

5.4 spring-mybatis整合

1

2

3 class="com.alibaba.druid.pool.DruidDataSource"

4 init-method="init"

5 destroy-method="close">

6

7

8 ${jdbc_driverClass}

9 spring启动时,PropertiesPlaceHolder加载了mysql.properties文件 定义的jdbc_driverClass10

11

12 ${jdbc_url}

13

14

15 ${jdbc_userName}

16

17

18 ${jdbc_userPassword}

19

20

21

22 5

23

24

25

26 2

27

28

29

30 6000

31

32

33

34 2

35

36

37

38 2

39

40

41

42 true

43

44

45

46 180

47

48

49

50 clientEncoding=UTF-8

51

52

53

54

55

56

57 class="org.mybatis.spring.SqlSessionFactoryBean"

58 p:dataSource-ref="alibabaDataSource"//绑定的数据源59 p:mapperLocations="classpath:mapper/*.xml">//映射文件mapper.xml的位置 src/main/resources60

61 //指向mybatis的内容配置文件62

63 //持久层封装对象时,无需指定类的全路径名称 resultType="Product"64

spring管理的整合持久层对象sqlSession;没有这个对象动态代理无法完成接口类方法的实现和xml映射文件中sql语句的绑定关系

5.5 mybatis.xml

到此SSM项目框架搭建成功(搭建过程中可能会出现不同的问题,一些常见的问题已经整理好 请查看https://www.cnblogs.com/nanlinghan/p/9973495.html解决)

七 测试工程(easymall首页显示)

逻辑:

首页index.jsp存储在 WEB-INF/views/index.jsp

访问url:localhost:port/直接访问

代码逻辑

编写在一个被spring和springmvc扫描到的controller里

1 @RequestMapping("/")2 publicString goIndex(){3 return "index";}4

5 packagecom.jt.easymall.controller;6 @Controller7 public classIndexController {8

9 //添加首页的映射地址"/"

10 @RequestMapping("/")11 publicString goIndex(){12 return "index";//WEB-INF/views/index.jsp

13 }}

Maven的tomcat插件

maven内部可以引入tomcat的插件,执行当前工程的启动功能,无需外部的tomcat容器来加载当前工程的war包执行了;

pom中通过描述信息,引入maven的tomcat插件

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第5张图片

配置启动maven工程的debug模式

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第6张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第7张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第8张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第9张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第10张图片

ssm mysql电商项目_SSM项目之电商项目easymall(一)_第11张图片

完成配置之后,可以点击debug测试当前工程的启动

你可能感兴趣的:(ssm,mysql电商项目)