首页 > 其他分享 >新星计划|项目实训|SSM旅游网项目实战笔记一

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

时间:2023-06-02 11:32:19浏览次数:36  
标签:maven 项目 redis value SSM 实训 key 旅游网 安装


应邀请,特委派公司开发负责人张老师带队新星计划: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基础的同学cr

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安装配置


 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的安装窗口,直接下一步即可。

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

 

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

配置环境变量:

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

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

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

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

2.3.2 idea 的安装



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


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

使用


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


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

 

idea 配置maven

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

 

2.3.3 maven讲解配置

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

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

 

maven主要是做什么的


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


maven的约定

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

 

约定的目录(不可改):

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>

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

 

idea 配置maven

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_12

 

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

 

创建一个简单的maven项目

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

 

 

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

 

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_16

 2.3.4 MYSQL讲解配置


 1,下载解压MYSQL5.7

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

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

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

4,选择要安装的版本:

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

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

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

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

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

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_21

6,己经准备好安装:

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

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

7,设置管理员密码:root

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

8,安装成功

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

安装完毕

修改编码配置:

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

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

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

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

在[mysql]下面添加:

default-character-set=utf8

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_27

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

character-set-server=utf8

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_28

然后重启MYSQL57服务即可

在运行中执行 services.msc

查看MYSQL服务是否动行

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_29

2.4 SSM旅游网表结构介绍

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

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系统下安装

新星计划|项目实训|SSM旅游网项目实战笔记一_开发语言_31

6) redis启动

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

 

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

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

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

 

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

 7) redis客户端安装

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

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

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

 

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,各位同学需要参考短信操作文档在阿里云平台注册并绑定测试用手机号即可。详见资料阿里云短信发送操作文档。

标签:maven,项目,redis,value,SSM,实训,key,旅游网,安装
From: https://blog.51cto.com/u_16147814/6401160

相关文章

  • IDEA 创建JavaWeb项目(不依赖 springboot)手动整合 SSM框架
    目录 1.创建一个Maven项目2.创建webapp和WEB-INF目录即可3.设置web.xml文件和web文件目录4.导入相关ssm框架的pom依赖文件5.创建对应的包结构:6.添加配置文件(配置mybatis、spring、springMvc等配置文件)7.web.xml配置文件8. 配置本地Tomcat运行9.打包发布1.创建一个Mav......
  • SpringBoot SSM vue 在线办公系统
    SpringBootSSMvue在线办公系统系统功能登录忘记密码首页统计分析用户管理员工管理公告管理考勤管理绩效管理薪酬管理流程管理留言管理文件管理开发环境和技术开发语言:Java使用框架:SpringBoot或SSM +Mybatis+MysqlSpringBoot是一个用于构建Java应用......
  • 【十六】classmethod()函数(1)
    【十六】classmethod()函数(1)【1】作用将方法转换为类方法。类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。类方法可以在类(如c.f())上调用,也可以在实例(如c().f())上调用。除了类之外,实例被忽略。如果为派生类调用了类方法,则派生类对象将作为隐含的第一个......
  • SSM-基类-Service
    多态中父类不能调用子类独有的属性和方法,如何间接使用?1.BaseService基本接口publicinterfaceBaseService<T>{ //根据条件分页查询PageInfo<T>findPage(Map<String,String>filters); //增booleaninsert(Tt);//改booleanupdate(Tt)......
  • SSM-增删查改+分页
    【分页+增删查改】中:分页:即原来的findAll升级之后的findPage增:insert插入一条删:delete删除一条查:findById为了【改】,一般不单独用改:updateMap接收参数必须加@RequestParamAdmin实体类接收参数无需加参数路径参数需要出现3次/***@CreateTime:2023/......
  • 校企合作 | 东软学院人工智能实训专场会(第二期)顺利召开
    东软学院第二期人工智能实训专场会近日,在东软学院老师们的积极组织下,人工智能产业应用研究院(以下简称研究院)开展的第二期人工智能实训专场会顺利召开。本次研究院也为东软学院第一期实训通过的学生发放相关项目实训证明。一期实训通过学生领取项目实训证明第二期实训专场会由研究院......
  • SSM学习第二天
    SSM学习第二天今日目标掌握IOC/DI配置管理第三方bean掌握IOC/DI的注解开发掌握IOC/DI注解管理第三方bean完成Spring与Mybatis及Junit的整合开发1,IOC/DI配置管理第三方bean前面所讲的知识点都是基于我们自己写的类,现在如果有需求让我们去管理第三方jar包中的类,该如何管......
  • SSM学习第一天
    SSM学习第一天今日目标掌握Spring相关概念完成IOC/DI的入门案例编写掌握IOC的相关配置与使用掌握DI的相关配置与使用1,课程介绍对于一门新技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那对于Spring来说:1.1为什么要学?从使用和占有率看Sp......
  • 小鹿线就业实训室靠谱吗?
    现在web前端开发开发技术在不断地迭代更新,有很多从事前端开发的程序员在技术上会遇到瓶颈,这个时候小伙伴就应该通过不断的学习开发技术知识,来提升自身的开发技术水平,那小伙伴应该怎么来学习呢?1.梳理清楚知识体系框架学习前端开发技术,不管是入门还是进阶,一定都要有知识体系建设......
  • Numpy_矩阵的multiply_python的属性以及类特性_装饰器——@property_@classmethod_@st
    Python类中有三个常用的装饰器分别是@property(使一个方法可以被当成属性调用,常用于直接返回某一不想被修改的属性)@classmethod(将一个方法定义为类方法,其中第一个参数要修改为cls,使得该方法可以不用实例化即可被调用)@staticmethod(静态方法,类似于类方法,也可以不用实例化,......