新星计划|项目实训|SSM旅游网项目实战笔记一

应CSDN邀请,特委派公司开发负责人张老师带队新星计划:SSM旅游网项目实训。现将实训的相关笔记分期发放,以供参考。如需要相关资料,可以博客尾部添加微信获取。

如想参加些次项目实训学习并提升自己的,可在文未联系添加(免费学习)

一、实训介绍

实训目的:其实通过实际的项目来检验大家的理论水平和实操水平,并同时通过实际的项目来积相应的项目经验。

IT行业:主要特点---变化快。但SSM一直在用。

企业招聘:有开发经验。一是因为解决问题的速度。二是有一定的技术储备,学习能力强。

通过本次实训你可以学到:

1、JAVA企业级开发环境的基本搭建:如何安装配置JDK,IDEA,MYSQL5.7,MAVEN,REDIS等环境。

2、SSM框架的学习:讲解学习Spring、SpringMvvc、Mybatis框架的开发与应用

3、Redis缓存数据库的学习:如何使用Redis缓存数据库来做数据缓存与优化

4、使用阿里云短信实现短信发送

5、使用微信支付SDK完成在线支付

6、使用百度第三方接口完成地图信息调用与天气信息查询

7、完成一个基于SSM框架的旅游商城的前端功能开发,实现前后端异步交互的处理步骤和开发技术。

目标人群:

1、具备一定的JAVA学习基础和前端HTML,JAVASCRIPT基础的同学

2、想要从事IT行业,缺乏项目经验的同学

3、正在做毕业设计,不会做项目或有项目不知如何答辩的同学


二、项目环境搭建

2.1、项目功能介绍

注册、登录、退出、分类导航、线路分页查询、线路详情页、HOT排行榜、实名认证、微信扫码支付、短信验证码和邮件验证

2.2、技术选型

 1) 开发语言  java / jdk 1.8
 2) 开发工具 IDEA 
 3) 数据库
    mysql( 关系型数据库)  + redis (NoSql数据库)
 4) 后端框架SSM
      SSM:(spring + springmvc + mybatis)
 5) 前端
      html + css +  js + jquery
 6) 短信验证码服务
     腾讯云-短信服务
 7) 微信扫码支付SDK
 8) jar包管理工具 maven

2.3、环境搭建

2.3.1 JDK安装配置

 安装参考演示视频:https://live.csdn.net/v/282238

 1) 安装 jdk(安装完JDK后会提交接着安装JRE)
 2) 配置环境变量
 3) 运行 java -version验证是否正确
 配置环境变量
 ​
 1)系统变量→新建 JAVA_HOME 变量
   变量值填写jdk的安装目录
   
 2)系统变量→寻找 Path 变量→编辑
    在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
   (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

 详情见: jdk环境变量配置文档

 JDK1.8安装分为两步:一是安装JDK,二是安装JRE,安装完JDK后面会自动弹出JRE的安装窗口,直接下一步即可。

 

配置环境变量:

 进入系统的命令窗口测试JDK是否安装成功:

2.3.2 idea 的安装

 参考演示视频:https://live.csdn.net/v/282241

 执行ideaIU-2020.1.3.exe文件, 一直下一步即可

使用

 找到对应版本的PJ文件,拖到创建项目的界面即可

idea 配置maven

2.3.3 maven讲解配置

Maven 就是一个项目、包管理工具,在没有包管理工具之前,我们做一个 Java 项目,需要第三方依赖包.将别人打好的 Jar 包下载到本地,然后手动指定给项目。操作麻烦,比如版本控制,需要新版本怎么办,重新下载,重新指定。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码,指定包名、版本等,就可以了。另外,maven 还提供了很多插件,比如常用的打包插件,调试插件等,方便我们的开发和部署。

maven主要是做什么的

 项目生命周期管理
 项目的依赖包管理
 提供统一项目目录结构

maven的约定

约定的目录(不可改):

src/main/java –存放项目的.java文件
src/main/resources –存放项目资源文件。比方spring,hibernate配置文件
src/test/java –存放全部測试.java文件,比方JUnit測试类
src/test/resources ---測试资源文件
target ---项目输出位置,编译完毕后的东西放到这里面
pom.xml -- jar包配置文件

maven的生命周期

阶段 处理 描述
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
 clean 清理项目周期

maven仓库

 maven仓库,就是放置所有的jar文件的地方
 ​
 本地仓库
   本地环境安装maven后,会生成一个本地仓库位置(.m2/respository/),可在maven的配置文件中更改此位置(建议更改)
 ​
 远程仓库和中央仓库(MAVEN团队维护一个中央仓库)
    当maven要查找构件时,发现本地仓库中没有,则需要从远程仓库下载构件到本地仓库,供项目使用。
    如下面,就使用阿里云仓库:
    当我们不配置远程仓库时,maven会默认一个仓库,即maven官方的仓库,称之中央仓库

maven坐标

 在数学中, 任何一个坐标可以唯一确定一个“点”。
 Maven 中坐标是Jar包的唯一标识
 ​
 坐标元素包括groupId、artifactId、version、packaging:
元素 描述 说明
groupId 定义当前模块隶属的实际Maven项目 中小企业常常直接对应公司/组织
artifactId 定义实际项目中的一个Maven模块 唯一标识一个模块
version 定义当前项目所处版本 SNAPSHOT 表示不稳定的版本。 LATEST 指最新发布的版本,可能是个发布版,也可能是一个snapshot版。 RELEASE 指最后一个发布版。
packaging 定义Maven项目打包方式 有jar(默认)、war、pom、maven-plugin等.

MAVEN的相关配置:

maven的setting.xml配置

 maven下载:  http://maven.apache.org/

1) 指定仓库位置

2) 修改为从阿里云下载

 <mirror>
     <id>alimaven</id>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
 </mirror>

idea 配置maven

 

创建一个简单的maven项目

 

 

 2.3.4 MYSQL讲解配置

 安装参考演示视频:https://live.csdn.net/v/282244

 1,下载解压MYSQL5.7

2, 双击安装MYSQL:  mysql-installer-community-5.7.33.0.msi

3,检查完安装环境后:选择custom来自定义安装

4,选择要安装的版本:

5,检查所需要的环境组件进行安装:

如果检查到有需要安装的环境组件:会自动安装,选择execute  即可

6,己经准备好安装:

7,设置管理员密码:root

8,安装成功

安装完毕

修改编码配置:

如果没有修改安装路径,默认是在:C:\Program Files\MySQL\MySQL Server 5.7

而它的数据文件和配置文件:

修改my.ini配置文件,添加编码:

在[mysql]下面添加:

default-character-set=utf8

还需要在[mysqld]下面添加编码:

character-set-server=utf8

然后重启MYSQL57服务即可

在运行中执行 services.msc

查看MYSQL服务是否动行

2.4 SSM旅游网表结构介绍

SQL练习:

#添加
INSERT INTO tab_user (uid,username,password,name,birthday,sex,telephone,email,status,code)
VALUES(1,"heima001","abc123456","张三","1999-1-1 16:00:00","男","15812345678","[email protected]","N","123456")

#账户激活
UPDATE tab_user SET  status = "Y" , `code` = NULL WHERE `code`= '123456';

#验证用户名密码是否正确
SELECT * FROM tab_user WHERE username = 'heima001' AND `password` = 'abc123456';

#分类导航查询
SELECT * FROM tab_category ORDER BY cid

#分页查询总条数
SELECT COUNT(*) FROM tab_route WHERE cid = 5;

#分页查询SQl
SELECT * FROM tab_route WHERE cid = 5 LIMIT 5,5;

#线路详情页
SELECT * FROM tab_route WHERE rid = 1;

SELECT * FROM tab_route_img WHERE rid = 1;

SELECT * FROM tab_seller WHERE sid = 1;

#创建订单
INSERT INTO tab_order (orderid,transactionid,payment) VALUES (1,1,'0.01')

#修改订单支付状态
UPDATE tab_order SET `status` = 1 , paymenttime = SYSDATE() WHERE orderid = 1;

2.5 Redis缓存服务器

1) 简介

 redis是C语言开发的一个开源的高性能键值对(key-value)数据库,其中value可以为String 、hash 、list 、set 、zset 等多种数据结构。可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线等附加功能。

2) 特性

 1、速度快,数据放在内存中,官方给出的读写性能 10万/S(与机器的性能有关)
     a、数据存放在内存是速度快的主要原因
     b、C语言实现,与操作系统距离近
     C、使用了单线程架构,预防多线程可能产生的竞争问题
 2、键值对的数据结构服务器
 3、丰富的功能
 4、简单稳定(单线程)
 5、持久化 : 有将数据备份到硬盘的机制。 发生断电或机器故障,数据肯会丢失
 6、主从复制
 7、高可用和分布式 : 哨兵机制实现高可用,保证redis节点故障发现和自动转移
 8、客户端语言支持多语言 :  java php python c c++ nodejs

3) 使用场景

  1、缓存 : 合理使用缓存加快数据访问速度,降低后端数据源压力
  2、排行榜 : 按照热度排名,按照发布时间排行,主要用到列表和有序集合
  3、计数器应用: 视频网站播放数,网站浏览数等
  4、社交网络 : 赞、踩、粉丝、下拉刷新
  5、消息队列: 发布和订阅
  6、其他场景等等

4) 版本选择

 1、版本号第二位为奇数,为非稳定版本(2.7 , 2.9 , 3.1)
 2、版本号第二位为偶数,为稳定版本(2.8 , 3.0 , 3.2)
 3、奇数版本是下一个稳定版本的开发版本,如2.9是3.0的开发版本

5) redis在windows系统下安装

6) redis启动

 前端启动 :  直接运行安装目录下的   redis-server.exe  即可

 

 后端启动:
  1) 打开cmd窗口, 进入redis安装目录
  2) 执行 redis-server.exe --service-install redis.windows.conf --service-name redis --loglevel verbose
  3) 我的电脑 —> 右键选择属性 -> 选择服务和应用程序 —> 选择服务 —>  找到redis启动

 

 7) redis客户端安装

 8) 使用redis客户端连接redis服务端

9) 操作指令

string 字符串操作指令

字符串类型:实际上可以是字符串(包括XML 、JSON),还有数字(整形浮点数),二进制(图片音频视频),最大不能超过512MB

 #存储设值
 set key value
 ​
 #获取
 get key
 ​
 #批量设值
 mset key value [key value ...]
  
 #批量获取
 mget key [key ...]

hash

是一个string 类型的field 和value 的映射表,hash 特适合用于存储对

#设值
hset key field value

#取值 
hget key field

#批量设值
hmset key filed value [filed value ...]

#批量取值
hmget key filed [filed ...]
 
#获取所有field
hkeys key

#获取所有value
hvals key

#获取所有的filed 和value
hgetall key

list

用来存储多个有序的字符串,一个列表最多可存2 的32 次方减1个元素 因为有序,可以通过索引下标获取元素或某个范围内元素列表,列表元素可以重复

 #依次向尾部添加数据
 rpush key value [value ...]
 ​
 #依次向头部添加数据
 lpush key value [value ...]
 ​
 #查询指定下标范围内元素(索引下标: 从左到右为0 到N-1,-1 代表最后一位元素)
 lrange key start stop
 ​
 #返回指定下标元素(index 可以为负值, -1 代表最后一位元素)
 lindex key index

set

保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合最多可存2 的32 次方减1个元素

 #添加元素(相同的元素,则重复无效)
 sadd key value [value ...]
 ​
 #获取所有value值(返回结果无序)
 smembers key

zset

有序集合操作指令,不允许有重复元素

 #添加 (score   )
 zadd key score member [score member......]
  
 #查询 (指定下标范围内元素,  索引下标: 从0到N-1, -1 代表最后一位元素)
 zrange key 0 -1 withscores

全局

 #查看所有键
 keys *
 ​
 #查看键总数
 dbsize
 ​
 #检测键是否存在 存在返回1 , 不存在返回 0
 exists key
 ​
 #删除键  返回删除键个数,删除不存在的键返回 0
 del key
 ​
 #设置键的过期时间(单位秒)
 expire key seconds
 ​
 #查看key的过期时间(返回 -1 表示不过期, 返回 -2 表示键不存在)
 ttl key
 ​
 #查看键的数据类型 (键不存在返回 none)
 type key
 ​
 #获取客户端连接数
 info clients

10) redis-Java客户端的使用

maven

 <dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.6.2</version>
 </dependency>

创建连接池 - 获取连接

 //创建连接池一个对象, 从连接池中获取一个redis链接
 JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);
 Jedis jedis = jedisPool.getResource();

使用jedis

 //String
 String set = jedis.set("name", "王五");
 System.out.println(set);
 ​
 String name = jedis.get("name");
 System.out.println(name);
 ​
 ​
 //Hash
 Long hSet = jedis.hset("user:1", "name", "张三");
 System.out.println(hSet);
 ​
 String hName = jedis.hget("user:1", "name");
 System.out.println(hName);
 ​
 ​
 // zAdd
 Long zAdd = jedis.zadd("userZSet", 1, "张三");
 System.out.println(zAdd);
 ​
 Set<Tuple> userZSet = jedis.zrangeWithScores("userZSet", 0, -1);
 System.out.println(userZSet);

2.6 阿里云短信发送

此服务将短信的发送与检验的功能全部集成了,发送短信验证码时,它会连接本地的REDIS,将验证码保存到redis中,并返回相应的信息(包含生成的key), 校验时对应的接口会自动查询redis进行比对,并返回相应的状态码表示校验成功或者失败。

1) 环境

 Java 1.8+   redis
 阿里云短信服务

2) 简介

本次项目使用阿里云短信服务实现短信发送操作,工程中己导入阿里云依赖,并编写好发送短信的工具类SMSTestUtil.java,各位同学需要参考短信操作文档在阿里云平台注册并绑定测试用手机号即可。详见资料阿里云短信发送操作文档。

猜你喜欢

转载自blog.csdn.net/whirlwind526/article/details/129762571
今日推荐