京淘项目的jt的完整演练<二>

目录

1.京淘项目前端项目搭建

1.1 node.js 安装

2 报错说明

2 初始化VUE项目

2.1 初始化UI工程(这里就表示vue装好了)

3 初始化项目

3.1 安装插件

3.2 安装axios依赖

3.3 添加依赖项

3.3.1 问题描述

3.3.2 安装开发依赖 less-loader

3.4 安装运行时依赖 富文本编辑器

3.4.1 添加依赖方式

3.4.2 添加html 实现页面展现

3.6 VUE中环境配置

3.7 VUE项目打包

3.8 VUE项目优化

3.8.1 编辑生产环境配置

3.8.3 CDN网址

3.9 实现路由懒加载

3.9.1 添加插件包

3.9.2 添加JS文件

3.9.3 配置路由懒加载

                                          这里就正式开始了

2.2 导入前端项目

2.2.1 前端资源文件

2.2.2 解压文件

1. 项目概述

1.1 核心业务

1.2 表设计说明

1.2.1 user表说明

1.2.4 商品表item-itemDesc

2. 后端项目搭建

2.1 创建项目

2.1.1 新建项目

2.1.3 加载为maven项目(选做)

2.1.5 编辑yml文件

#2.5.6编辑xml映射文件

复制src文件目录

2.1.6 修改后端服务器端口号

2.2 后端项目环境测试

2.2.1 项目环境结构

2.2.2 项目测试

2.3 组件说明

2.3.1 组件结构关系

2.3.2 VUE.js功能模块说明

2.4 首页跳转说明

3 完成用户登录

3.1 用户登录业务接口

3.2 编辑SysResult对象

3.3 用户登录业务流程

3.4 实现用户登录

3.4.1 编辑UserController

3.4.2 MD5说明

3.4.3 编辑UserService/impl

3.4.3.1 编辑UserService

3.4.4 编辑UserMapper

3.4.5 注意事项

4.1 动态生成秘钥

4.2 关闭IDEA关于mapper的校验

4.4 Cookie和Session

4.4.1 业务说明

4.4.2 Session说明

4.5 实现系统首页跳转

4.5.1 需求说明

4.5.2 编辑路由

5. 左侧菜单列表实现

5.1 权限层级代码结构

5.2 业务接口

5.3 权限列表查询的Sql

5.4 前端页面JS分析

5.5.1 编辑RightsController

5.5.2 编辑RightsService/RightsServiceImpl

2.5.3 编辑RightsMapper/xml映射文件

2.5.4 页面效果展现

2.6 利用Mybatis子查询的方式获取数据(扩展)

2.6.1 子查询的图解

6. 用户模块实现

1.1 实现子级路由跳转

1.1.1 组件之间的关系图

1.1.2 路由语法说明

1.2 用户列表展现

1.2.1 页面JS分析

1.2.2 用户列表业务接口

1.2.4 前后端数据关联

1.2.6 编辑UserService/UserServiceImpl

1.2.7 编辑UserMapper接口/映射文件

1.3 用户状态修改

1.3.1 业务说明

1.3.2 VUE.JS 作用域插槽

 1.3.4 状态修改业务接口

1.3.5 编辑UserService/实现类

1.3.6 编辑UserMapper接口

1.4 用户新增

1.4.1 页面弹出框效果

1.4.2 页面JS分析

1.4.3 新增业务接口

1.4.4 编辑UserController

1.4.5 编辑UserService/实现类

1.4.6 编辑UserMapper

3.作业

7. 作业讲解

1.1 用户修改操作

1.1.1 页面JS分析

1.1.2 修改业务接口

1.1.4 编辑UserService

1.2 用户删除操作

1.2.1 编辑页面JS

1.2.2 业务接口

1.2.4 编辑UserService

1.2.5 编辑UserMapper

2. 全局异常处理

2.1 异常说明

2.2 Spring的全局异常处理机制

3. Spring中事务控制

3.1 事务特性

3.2 Spring中默认事务策略

4. MybatisPlus

4.1 准备新测试环境

4.3 MP

4.3.1 MP介绍

4.4 MP入门案例

4.4.1 导入jar包

4.4.2 编辑POJO对象

4.4.3 编辑Mapper接口

4.4.4 SpringBoot整合MybatisPlus

4.5 SpringBoot测试API说明

4.5.1 需求说明

4.6.3 MP动态Sql实现原理

4.7 MybatisPlus API介绍

4.7.1 根据Id查询数据

4.7.2 根据name和sex查询数据

4.7.3 利用queryWrapper查询数据

4.7.4 like关键字

4.7.5 in关键字

4.7.5 查询第一列字段

4.7.6 动态Sql实现

5.课堂总结

5.1 注解总结

7 商品分类实现

1. 商品分类实现

1.1 环境搭建

1.1.1 表设计

1.1.2 项目改造

1.1.2.3 编辑ItemCatMapper

 1.1.2.5 层级代码搭建

 1.2 商品分类页面跳转

1.3 商品分类列表展现

1.3.1 页面分析

1.3.2 业务接口说明

1.3.3 Sql实现 、

 1.3.3 编辑ItemCatController

1.4 商品分类列表优化

1.4.1 Map封装策略

 1.4.2 封装Map集合

 1.4.3 获取二级数据信息

1.4.4 商品分类全部数据获取

1.4.5 商品分类页面效果展现

1.5 商品分类新增

1.5.1 页面分析

#1.5.2 业务接口说明

​ 1.5.3 编辑ItemCatController

 1.5.5 页面效果展现

1.6 商品分类删除

1.6.1 业务说明

1.6.2 页面分析

1.6.3 业务接口文档

 1.6.4 编辑ItemCatController

1.6.5 编辑ItemCatService

1.6.5.1 编辑ItemCatService接口

 1.6.5.2 编辑ItemCatServiceImpl

作业


1.京淘项目前端项目搭建

1.1 node.js 安装

VUE后端管理插件安装_闪耀太阳的博客-CSDN博客

1.1.下载node.js

1).官网下载

 如果是window7系统: 下载安装13的版本 URL: https://nodejs.org/dist/latest-v13.x/

 2).安装node.js
之后一路下一步安装即可.

 3).检查node js版本

 4).检查NPM版本号

 5).切换淘宝NPM库
1).npm install -g cnpm --registry=https://registry.npm.taobao.org
方式2:
2).npm config set registry https://registry.npm.taobao.org (建议使用第二种)

 6).检查镜像配置是否生效 npm config list

7).安装VUE和客户端
命令: npm install -g @vue/cli --force

等待安装完成之后即可

2 报错说明

1).如果报错如下

 方案1) .删除用户目录下的文件,之后重新安装. (删除文件 不要删除目录)

 方案2): 执行卸载命令 npm uninstall -g @vue/cli 之后重新安装

2 初始化VUE项目

2.1 初始化UI工程(这里就表示vue装好了)

 2.2 选择VUE 创建项目

 2.3 选择项目

 选择:手动

 2.4选择功能

 

 选择ESLint+ StandardConfig

 项目创建之后效果

3 初始化项目

3.1 安装插件

选择如图所示的插件进行安装

 1).安装成功之后会提示配置插件 选择手动导入

3.2 安装axios依赖

1).点击依赖项

 2).安装运行依赖

3.3 添加依赖项

3.3.1 问题描述

3.3.2 安装开发依赖 less-loader

安装开发依赖 less-loader
npm install less-loader@5.0.0 版本太高不适用
在VUE项目的根目录启动执行安装命令

 3.3.3安装开发依赖 less

3.4 安装运行时依赖 富文本编辑器

  1. 通过客户端的方式安装
    有时候可能比较慢,所以需要提前安装
    源码网址: https://github.com/surmon-china/vue-quill-editor#readme
    组件名称: vue-quill-editor

 2.方式2 通过命令安装
命令: npm install vue-quill-editor --save

 安装之后的效果

 3.4.0 关闭ESLint校验

3.4.1 添加依赖方式

在main.js中添加该操作

import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme

Vue.use(VueQuillEditor, /* { default global options } */)

3.4.2 添加html 实现页面展现

 <el-tab-pane label="商品详情" name="4">
            <!-- 定义富文本编辑器-->
            <quill-editor ref="myQuillEditor" v-model="addItemForm.itemDesc" />

          </el-tab-pane>

 效果展现

 设置富文本编辑器宽度

 3.5 安装运行依赖 echars插件

 

<template>
  <div>
    <!-- 定义卡片视图 -->
    <el-card>
      <el-row>
        <el-col><h1>数据统计</h1></el-col>
      </el-row>

     <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
     <div id="main" style="width: 100%;height:600px;"></div>

    </el-card>

  </div>
</template>

<script>
  /* 导入echarts组件 */
  import * as echarts from 'echarts';


  export default {
    data() {
      return {

      }
    },
    created(){

    },
    //当页面dom对象初始化之后执行
    mounted(){
      var myChart = echarts.init(document.getElementById('main'));
      // 指定图表的配置项和数据
      var option = {
          title: {
              text: 'ECharts 入门示例'
          },
          tooltip: {},
          legend: {
              data:['销量']
          },
          xAxis: {
              data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
          },
          yAxis: {},
          series: [{
              name: '销量',
              type: 'bar',
              data: [5, 20, 36, 10, 10, 20]
          }]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    },
    methods: {

    }
  }
</script>

<style lang="less" scoped>
</style>

3.6 VUE中环境配置

在根目录中创建文件 vue.config.js 文件

 2.添加环境配置

module.exports = {
  //配置项目开发时 是否使用esLint 进行校验. 学习时配置为false 为了高效的学习,开发时配置为true 力求专业
  lintOnSave: false,

  //实现多环境配置
  chainWebpack: config => {

    //定义生产环境的配置
    config.when(process.env.NODE_ENV === 'production', config => {
      config.entry('app').clear().add('./src/main-prod.js')
    })

    //定义开发环境的配置
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
    })

  }
}

3.7 VUE项目打包

方式有2种, 方式1: 通过express插件将项目打包
命令: 1. npm init -y

 命令2: npm i express -S

 命令3: 编辑app.js

const express = require('express')

const app = express()

app.use(express.static('./dist'))
app.listen(8090, () => {
	console.log("服务启动localhost:8090")
})

启动命令:

 访问测试:

3.8 VUE项目优化

3.8.1 编辑生产环境配置

module.exports = {
  //配置项目开发时 是否使用esLint 进行校验. 学习时配置为false 为了高效的学习,开发时配置为true 力求专业
  lintOnSave: false,

  //实现多环境配置
  chainWebpack: config => {

    //定义生产环境的配置
    config.when(process.env.NODE_ENV === 'production', config => {
      config.entry('app').clear().add('./src/main-prod.js')

      //通过externals 加载外部CDN资源 被修饰的包不会被添加
      config.set('externals',{
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios:  'axios',
        'vue-quill-editor': 'VueQuillEditor',
         echarts:  'echarts'

      })
    })

    //定义开发环境的配置
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
    })

  }
}

 3.8.2 引入CDN配置

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
		
		
		<!-- 引入样式表 -->
		<link href="https://cdn.staticfile.org/quill/1.3.6/quill.bubble.min.css" rel="stylesheet">
		<link href="https://cdn.staticfile.org/quill/1.3.6/quill.core.min.css" rel="stylesheet">
		<link href="https://cdn.staticfile.org/quill/1.3.6/quill.snow.min.css" rel="stylesheet">
		<link href="https://cdn.staticfile.org/element-ui/2.15.1/theme-chalk/index.min.css" rel="stylesheet">
		
		
		<!-- 引入其他JS -->
		<script src="https://cdn.staticfile.org/quill/1.3.6/quill.min.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.6/dist/vue-quill-editor.js"></script>
		<script src="https://cdn.staticfile.org/vue/2.6.9/vue.min.js"></script>
		<script src="https://cdn.staticfile.org/vue-router/3.5.1/vue-router.min.js"></script>
		<script src="https://cdn.staticfile.org/axios/0.21.1/axios.min.js"></script>
		<script src="https://cdn.staticfile.org/echarts/5.1.0/echarts.min.js"></script>
		<script src="https://cdn.staticfile.org/element-ui/2.15.1/index.min.js"></script>
		
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

3.8.3 CDN网址

网址: http://www.staticfile.org/

 3.8.4 优化后的结果

3.9 实现路由懒加载

3.9.1 添加插件包

插件名称: babel/plugin-syntax-dynamic-import

3.9.2 添加JS文件

文件名称: @babel/plugin-syntax-dynamic-import

3.9.3 配置路由懒加载

官网地址: https://router.vuejs.org/zh/guide/advanced/lazy-loading.html
语法结构:

const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')
const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')

说明: 根据博客文章安装node.js/ui工具.最终的效果如图即可

                                          这里就正式开始了

按信window+R  打开小窗口后输入:cmd 后就打开小黑窗口 

2.2 导入前端项目

2.2.1 前端资源文件

注意事项: 下载的文件一定是一个zip包文件.
路径:

2.2.2 解压文件

将资源文件的zip包 解压到第三阶段的课程项目路径下.

 window+R 

 2.2.3 导入项目

 # 2.2.4 项目运行

 项目最终效果

1. 项目概述

1.1 核心业务

1.用户登录操作
2.后台首页展现/展现左侧菜单列表
3.完成用户模块的CRUD
4.完成商品分类模块的CRUD
5.完成商品模块的CRUD
6.完成商品关联入库、关联删除
7.完成商品图片文件上传
8.实现图片的回显 nginx反向代理
9.完成项目服务器部署 准备3台tomcat服务器。实现负载均衡/搭建tomcat集群
10.实现项目Linux 真实环境部署.
阶段目标: 达到初-中级开发工程师的水平. 业务思维!!! 2-3遍

1.2 表设计说明

1.2.1 user表说明

 1.2.2 item_cat表

 1.2.3 权限表rights

 

1.2.4 商品表item-itemDesc

item.id = item_desc.id 一一对应.

 

2. 后端项目搭建

2.1 创建项目

2.1.1 新建项目

 2.1.2 选择SpringBoot版本

2.1.3 加载为maven项目(选做)

说明:个别项目创建完成之后,不能被maven识别.所以需要点击如下按钮,进行识别

 2.1.4 编辑pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jt</groupId>
    <artifactId>jt</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>jt</name>
    <description>jt</description>

    <!--只需要复制 除了坐标之外的文件即可-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.4.1</spring-boot.version>
    </properties>
    <dependencies>
        <!--springBoot整合mvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--springBoot整合测试方法-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--支持热部署 开发阶段有效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <!--引入插件lombok 自动的set/get/构造方法插件  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <mainClass>com.jt.SpringbootDemo1Application</mainClass>
                </configuration>
                <!--排除一些指定的配置-->
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

2.1.5 编辑yml文件

#语法: 1.key:(空格)value结构
server:
  port: 8090

#整合数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

#SpringBoot整合mybatis
mybatis:
  #指定别名包
  type-aliases-package: com.jt.pojo
  #加载指定的xml映射文件
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

#2.5.6编辑xml映射文件

<?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.jt.mapper.UserMapper">

    <select id="findAll" resultType="User">
        select * from user
    </select>
</mapper>

复制src文件目录

说明: 将ssm项目中的src导入jt中即可.

2.1.6 修改后端服务器端口号

重要说明: 由于前端将后端服务器端口已经固定,如果实现前后端调用,则后端端口必须为8091.

2.2 后端项目环境测试

2.2.1 项目环境结构

2.2.2 项目测试

完成项目代码测试,按照之前的流程完成入门案例测试

 这里我说一下自己出现的错

 这个都是null

自己测试数据库存也是连接成功的

 最后发现是自己写sql写错了

查表查错了

请看我的错误

 改完了后又出现了一个情况

时间为null

 哈哈,这又是一个很粗心的错,我写出来,也是时时提醒自己一定要细心,细心很重要

2.3 组件说明

2.3.1 组件结构关系

说明: 每个组件都会包含html/css/js, 这样独立管理, 方便代码的扩展

2.3.2 VUE.js功能模块说明

 

2.4 首页跳转说明

  1. 当用户访问http://localhost:8080/ 时开始访问系统首页
  2. 根据路由规则实现跳转, 当用户访问/时, 重定向发起新请求/login
	{path: '/', redirect: '/login'},

3.根据"/login"的请求,跳转到登录组件

	{path: '/login', component: Login},

 2.5 关于axios引入说明

1.在核心main.js中引入axios

	/* 导入axios包 */
	import axios from 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值