vue.js微商城后台管理系统

news2025/4/16 21:07:29

一.需要运行的效果

20240701-231456

二.代码(解析)

首先,为项目添加依赖:

 yarn add element-plus --save

 yarn vue-router@4 --save

新建一个项目包,然后命名为商品管理,在components中新建几个vue文件。

新建一个文件包命名为public,将所需要的图片素材放入其中:

(1)我的“登录”界面

登录项目的验证:

a) 用户名和密码是必须输入项目。

b) 用户名和密码的检查: 用户名: '用户名长度为 3~12 个字符'

密码: '密码长度为 6~24 个字符'

登录按钮的功能的实现:

点击【登录】按钮,跳转到后台管理系统的首页 点击【重置】按钮,清空用户名和密码的输入内容

使用导航守卫实现登录页面的功能:

访问后台主页时,需要用户处于登录状态,如果没有登录就跳转到登录页面。 用户在登录页面进行登录操作,若登录成功,则跳转到后台主页;若登录失败,则返回 登录页面。

效果:

Dl.vue代码如下:

<template>
	<el-card class="zon"><!-- el-card白框 -->
		<div class="wei">
			<h2>"微商城"后台管理系统</h2>
			<hr size="1px" color="gainsboro"/>
		</div>
		<el-form :model="form" class="yh" :rules="rules" ref="formRef">
			<el-form-item label="用户名:" prop="loginName">
				<el-input v-model="form.loginName" placeholder="请输入用户名" style="width: 500px; height: 40px;"/>
			</el-form-item>
			<el-form-item label="密&nbsp;&nbsp;&nbsp;码:" prop="pass">
				<el-input show-password v-model="form.pass" placeholder="请输入密码"  style="width: 500px; height: 40px;"/>
			</el-form-item>
			<el-form-item class="deng">
				<el-button type="primary" @click="gologin" style="width: 100px;">登录</el-button>
				<el-button type="info" class="cz" @click="reset" style="width: 100px;">重置</el-button>
			</el-form-item>
		</el-form>
	</el-card>
</template>

<script setup>
	import {
		reactive,
		ref
	} from 'vue';
	const form = reactive({
		loginName: '',
		pass: ''
	})
	const formRef = ref(null)
	import {
		useRouter
	} from 'vue-router'
	import {
		ElMessage
	} from 'element-plus';
	const router = useRouter()
	const rules = {
		loginName: [{
			required: true,
			message: '请输入用户名',
			trigger: 'blur'
		}, {
			min: 3,
			max: 12,
			message: "用户名长度为 3~12 个字符",
			trigger: "blur"
		}],
		pass: [{
			required: true,
			message: "请输入密码",
			trigger: "blur"
		}, {
			min: 2,
			max: 24,
			message: "密码长度为 6~24 个字符",
			trigger: "blur"
		}],
	}
	const gologin = () => {
		if (form.loginName === '苏冷大大' && form.pass === '123456') {
			router.push('/Dh')
			ElMessage.success('提交成功')
			return localStorage.setItem('token', 'Bearer xxx');
		} else {
			ElMessage.error('用户名或密码错误!')
			localStorage.removeItem('token')
			return false;
		}
	}
	const reset = () => {
	
		formRef.value.resetFields();
	};
</script>
<style scoped>
	.zon{
		margin-left: 260px;
		width: 900px;
		height: 400px;
	}

	.wei h2 {
		text-align: center;
		color: darkred;
		size: 28px;
	}
	.yh{
		position: absolute;
		left: 450px;
		top: 150px;
	}
	.deng{
		position: absolute;
		top: 150px;
		left: 90px;

	}

</style>

(2)我的“导航”模块

登录首页分为头部和主体区域,如图 2-1 所示

头部区域:

a) 头部区域分别是导航栏标题和用户信息

b)点击【退出】按钮,跳转到登录页面

主体区域:

a) 主体区域分别是左侧导航栏和右侧内容区域

效果:

Dh.vue代码:

<template>
	<el-menu :default-active="activeIndex" mode="vertical" class="hehe" style="width: 200px;height: 700px;">
		<el-menu-item index="1">
			<router-link to="/Dh/Sy"><el-icon ><HomeFilled/></el-icon>首页</router-link>
		</el-menu-item>
		<el-menu-item index="2">
			<router-link to="/Dh/Xz"><el-icon ><List/></el-icon>新增分类</router-link>
		</el-menu-item>
		<el-menu-item index="3">

			<router-link to="/Dh/Fl"><el-icon ><Briefcase/></el-icon>分类管理</router-link>
		</el-menu-item>
		<el-menu-item index="4">

			<router-link to="/Dh/Sp"><el-icon ><GoodsFilled/></el-icon>商品管理</router-link>
		</el-menu-item>
		<el-menu-item index="5">
			<router-link to="/Dh/Zh"><el-icon ><UserFilled/></el-icon>个人中心</router-link>
		</el-menu-item>
	</el-menu>
</template>

<script setup>
</script>

<style scoped>
	a:link,
	a:visited {
		color: #000;
		text-decoration: none;
	}


	a:hover {
		color: darkred;
	}

</style>

Al.vue代码:

<template>
	<el-container>
		<el-header class="header">
			“微商城”后台管理系统
			<el-button type="primary" @click="goback" class="goback">退出</el-button>
		</el-header>
		<el-container>
			<el-aside width="200px"><Dh/></el-aside>
			<el-main><router-view class="view"></router-view></el-main>
		</el-container>
	</el-container>

</template>

<script setup>
	import {
		useRouter
	} from 'vue-router'
	import Dh from './Dh.vue'
	const router = useRouter()
	const goback = () => {
		localStorage.removeItem('token')
		// 使用localStorage.removeItem()方法删除token这个键名所对应的值
		router.push('/Dl')

	}
</script>

<style scoped>
	  .el-header {
	    background-color: #B3C0D1;
	    color: #333;
	   
	   
	  }
	  
	  .el-aside {
	    background-color: #fff;
	    color: #333;
	   
	  }
	  
	  .el-main {
	    background-color: #E9EEF3;
	    color: #333;
	   
	  }

	.header {
		height: 60px;
		width: 1400px;
		padding-top: 20px;
		padding-left: -10px;
		font-size: 19px;
		font-weight: bold;
		font-family: "楷体";
		color: #fff;
		background-color: darkred;
	}

	.goback {
		position: absolute;
		left: 240px;
		top: 25px;
		font-family: "楷体";
	} 
</style>

 (3)我的“新增分类”模块

新增分类页面 页面中是新增分类的页面,页面中包含分类名称、分类级别(一级分类和二级分类)、 产品大类、供货方式、备注信息和及时生效等项目。页面中有提交按钮和重置按钮。

效果:

Xz.vue代码如下:
 

<template>
	<div class="di">
		<h3 style="text-align: center;">新增分类</h3>
		<el-form :model="categoryForm" :rules="rules" label-width="100px">
			<!-- :model用于保存表单的数据对象,:rules用于对表单数据对象的校验,ref指定表单对象名称 -->
			<el-form-item label="分类名称" prop="name">
				<el-input v-model="categoryForm.name"></el-input>
			</el-form-item>
			<el-form-item label="分类级别" prop="name">
				<el-select v-model="categoryForm.level" placeholder="请选择分类级别">
					<el-option label="一级分类" value="一级"></el-option><!-- el-option下拉绑定 -->
					<el-option label="二级分类" value="二级"></el-option>
				</el-select>
			</el-form-item>
			<el-form-item label="产品大类" prop="name">
				<el-checkbox>潮流服饰</el-checkbox>
				<el-checkbox>食品</el-checkbox>
				<el-checkbox>珠宝配饰</el-checkbox>
				<el-checkbox>日用百货</el-checkbox>
			</el-form-item>
			<el-form-item @click="useRouter" label="供货方式" prop="name">
				 <el-radio-group v-model="categoryForm.remark">
				<el-radio label="线上供货" ></el-radio>
				<el-radio label="线下供货"></el-radio>
				</el-radio-group>
			</el-form-item>
			<el-form-item label="备注信息" prop="prow">
				<el-input v-model="categoryForm.remark"></el-input>
			</el-form-item>
			<el-form-item label="及时生效">
				<el-switch v-model="value1" :active-icon="Check" :inactive-icon="Close"/><!-- el-switch开关 -->
			</el-form-item>
			<el-form-item>
				<el-button type="primary" @click="handleSubmit">提交</el-button>
				<el-button @click="info">重置</el-button>
			</el-form-item>
		</el-form>
	</div>
</template>

<script setup>
	import {
		ref
	} from 'vue';
	import {
		useRouter
	} from 'vue-router'
	const value1 = ref(true)
	// 使用 ref 创建响应式数据
	const categoryForm = ref({
		name: '',
		level: '',
		category: '',
		supply: '',
		remark: ''
	});
	const handleSubmit = () => {
		router.push('/Fl');
	}

	// 重置表单数据
	const info = () => {
		categoryForm.value = {
			name: '',
			level: '',
			category: '',
			supply: '',
			remark: ''
		};
	};
	const router = useRouter()
	const rules = {
		name: [{
			required: true,
			message: '请输入分类名称',
			trigger: 'blur'
		}],
		prow: [{
			required: true,
			message: '请输入备注信息',
			trigger: 'blur'
		}],
	}
</script>

<style scoped>

	
</style>

(4)我的“分类管理”页面

a) 页面采用表单布局的方式,页面中展示关于分类的相关信息,包含分类名称、分类级 别(一级分类和二级分类)、产品大类、供货方式、备注信息等项目。

b) 单击页面中的【新增分类】按钮,可以新增分类信息,跳转到新增分类页面。 

效果:

Fl.vue代码如下:

<template>
	
  <div>
	  <div class="ya">
    <el-button type="primary" @click="fenlei" class="oo">新增分类</el-button>
	</div>
	<div class="ti">
    <el-table :data="categories"  stripe border style="width: 100%">
      <el-table-column  label="分类名称"></el-table-column>
      <el-table-column  label="分类级别"></el-table-column>
      <el-table-column label="产品大类"></el-table-column>
      <el-table-column label="供货方式"></el-table-column>
      <el-table-column label="备注信息"></el-table-column>
    </el-table>
	</div>
  </div>

</template>

<script setup>
import {
		ref
	} from 'vue';
	import {
		useRouter
	} from 'vue-router';
	const router = useRouter();
const fenlei = () => {
		router.push('/dh/xz');
	}
</script>

<style scoped>
	.oo{
		margin-left: 500px;
	}
	.ti{
		margin-top: 20px;
	}
	
</style>

 (5)我的“商品管理”界面

商品管理页面中展示关于商品的相关信息,包含商品编号、商品名称、商品价格、 商品分类、商品库存、商品简介和商品图片等项目。

单击“后退”按钮,跳转到后台管理系统首页页面。

点击“详情”按钮,跳转到商品详情信息页面。

效果:

Sp.vue代码如下:

<template>
	<div >
		<div class="yio">
			<el-button @click="goBack" class="h">后退</el-button>
			<div class="pl">
		<el-table :data="products" stripe border style="width: 1500px" height="850px">
			<el-table-column prop="id" label="商品编号"></el-table-column>
			<!-- prop属性绑定字段名 -->
			<el-table-column prop="name" label="商品名称"></el-table-column>
			<el-table-column prop="price" label="商品价格"></el-table-column>
			<el-table-column prop="stock" label="商品库存"></el-table-column>
			<el-table-column prop="description" label="商品简介"></el-table-column>
			<el-table-column prop="image" label="商品图片">
				<template #default="scope">
					<img :src="scope.row.image" alt="商品图片" width="120px" height="120px">
				</template>
			</el-table-column>
			<el-table-column label="操作">
				<template #default="scope">
					<el-button @click="handleDetail(scope.row)" style="background-color: orange;color: white; margin-left: 30px;">详情</el-button>
					
				</template>
			</el-table-column>
		</el-table>
		</div>
		</div>
	</div>
</template>

<script setup>
	import {
		ref
	} from 'vue';
	import {
		useRouter
	} from 'vue-router';
	const router = useRouter();
	const products = ref([{
			id: '1',
			name: '葡萄柚',
			price: '10.00',
			stock: '10',
			description: '葡萄柚含有丰富的蛋白质、维生素、叶酸、无机盐、纤维素等等。',
			image: '../images/grapefruit.png'
		},
		{
			id: '2',
			name: '葡萄',
			price: '10.00',
			stock: '20',
			description: '葡萄含有大量的维生素C,丰富的矿物质,日常食用,可以抗氧化、起到美容养作用,并且还能提高机体抵抗力、辅助降血压、降血糖、预防心脑血管疾病。',
			image: '../images/grape.png'
		},
		{
			id: '3',
			name: '西红柿',
			price: '3.00',
			stock: '10',
			description: '西红柿属于常见的水果,不仅美味,还营养丰富,具有美容养颜、保护视力等习生菜可生食,脆嫩爽口,略甜,具有改善睡眠、减肥瘦身、保护视力等功效',
			image: '../images/tomatoes.png'
		},
		{
			id: '4',
			name: '生菜',
			price: '6.00',
			stock: '50',
			description: '生菜可生食,脆嫩爽口,略甜,具有改善睡眠、减肥瘦身、保护视力等功效。',
			image: '../images/lettuce.png'
		},
		{
			id: '5',
			name: '葡萄柚',
			price: '10.00',
			stock: '10',
			description: '葡萄柚含有丰富的蛋白质、维生素、叶酸、无机盐、纤维素等等。',
			image: '../images/tomatoes.png'
		},
		{
			id: '6',
			name: '葡萄柚',
			price: '10.00',
			stock: '10',
			description: '葡萄柚含有丰富的蛋白质、维生素、叶酸、无机盐、纤维素等等。',
			image: '../images/grape.png'
		},
		{
			id: '7',
			name: '葡萄柚',
			price: '10.00',
			stock: '10',
			description: '葡萄柚含有丰富的蛋白质、维生素、叶酸、无机盐、纤维素等等。',
			image: '../images/grapefruit.png'
		},
	]);

	const handleDetail = (product) => {
		alert("确定要跳转吗?")
		router.push('/Tc/:id')
		return localStorage.setItem('token', 'Bearer xxx');
		
		
		// 跳转到详情页逻辑,可以在此处添加路由跳转逻辑
	};
// import request from './axios/request.js'
const goBack = () => {
	router.push('/Dh');
	};
</script>

<style scoped>
	.pl{
		margin-top: 20px;
	}
   .h{
	   background-color: blue; 
	   color: aliceblue;
	   margin-left: 470px;
   }
</style>


 (6)我的“个人账户”界面

个人中心页面是对个人账户信息进行修改,可以对用户名和密码进行修改,单击【提交】 按钮,可以完成对用户名和密码的修改,单击页面中的【重置】按钮,可以清空页面中需要 修改的用户名和密码。

效果:

Zh.vue代码如下:

<template>
	<el-card class="w">
	<div >
		<div class="mm">
			
			<h2>个人中心</h2>
			<hr size="1px" color="gainsboro"/>
		</div>
		<el-form :model="userForm" label-width="100px">
			<el-form-item label="用户名:">
				<span>刘丽珍</span>
			</el-form-item>
			<el-form-item label="原密码">
				<el-input type="password" v-model="userForm.pass"></el-input>
			</el-form-item>
			<el-form-item label="新密码">
				<el-input type="password" v-model="userForm.word"></el-input>
			</el-form-item>
			<el-form-item label="再次输入密码">
				<el-input type="  " v-model="userForm.vue"></el-input>
			</el-form-item>
			<el-form-item>
				<el-button type="primary" @click="handleSubmit">提交</el-button>
				<el-button @click="resetForm">重置</el-button>
			</el-form-item>
		</el-form>
	</div>
	</el-card>
</template>

<script setup>
	import {
		ref
	} from 'vue';
	import {
		useRouter
	} from 'vue-router';
	const router = useRouter();
	// 定义响应式数据
	const userForm = ref({
		pass: '',
		word: '',
		vue:'',
		password: ''
	});

	// 重置表单的方法
	const resetForm = () => {
		userForm.value = {
			password: ''
		};
	};
	const handleSubmit = () => {
		alert("提交成功")
		router.push('/Tc/:id');
	}
	
</script>

<style scoped>
	.mm h2 {
		text-align: center;
	}

</style>

最后,要新建一个router.js路由进行界面的跳转实现

router.js代码:

 

// 导入相关函数
import {
	createRouter,
	createWebHashHistory
} from "vue-router"
// 导入需要的组件
import Al from "./components/Al.vue";
import Dl from "./components/Dl.vue";
import Fl from "./components/Fl.vue";
import Sp from "./components/Sp.vue";
import Sy from "./components/Sy.vue";
import Xz from "./components/Xz.vue";
import Tc from "./components/Tc.vue";
import Bt from "./components/Bt.vue";
import Zh from "./components/Zh.vue";
// 创建路由对象router
const router=createRouter({
	// 指定路由工作模式
	history:createWebHashHistory(),
	// 声明路由规则
	routes:[
		// 路由重定向
		{path:'/',redirect:'/dl'},
		// 路由匹配规则
		{path:'/dl',component:Dl},
		{path:'/dh',component: Al,
		children:[
			{path:'fl',component:Fl},
			{path:'sp',component:Sp},
			{path:'sy',component:Sy},
			{path:'xz',component:Xz},
			{path:'zh',component:Zh},
			{path:'/Tc/:id',component:Tc, props:true},
			{path:'/Bt/:id',component:Bt, props:true}
		]}
	]
})
// 全局前置导航守卫
router.beforeEach((to,from,next)=>{
	if(to.path!='/dl'){
		const token=localStorage.getItem('token')
		if(token){
			next()
		}else{
			next('/dl')
		}
	}else{
		next()
	}
})
// 导出实例对象router
export default router;

今天就分享到此,感谢预览~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1899425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 C# 和 CefSharp 构建的全功能且快速的 Web 浏览器

SharpBrowser项目介绍 使用 C# 和 CefSharp 构建的全功能且快速的 Web 浏览器&#xff1a;SharpBrowser。 SharpBrowser是一个基于高性能的CefSharp渲染器的开源C# Web浏览器&#xff0c;采用MIT许可证。相较于Google Chrome&#xff0c;它在渲染网页时略有提升速度。该项目选…

01 Web基础与HTTP协议

1、域名和DNS 1.1 域名的概念 如果说一个主机&#xff0c;没有名字也可以完全用IP来代替&#xff0c;但是IP地址不好记忆。例如说&#xff0c;我们记一些网站的名称百度、新浪、搜狐等很好记&#xff0c;但是如果要去记百度的IP、新浪的IP、以及搜狐的IP地址&#xff0c;那将会…

基于.NET开源游戏框架MonoGame实现的开源项目合集

前言 今天分享一些基于.NET开源游戏框架MonoGame实现的开源项目合集。 MonoGame项目介绍 MonoGame是一个简单而强大的.NET框架&#xff0c;使用C#编程语言可以创建桌面PC、视频游戏机和移动设备游戏。它已成功用于创建《怒之铁拳4》、《食肉者》、《超凡蜘蛛侠》、《星露谷物…

Blazor 逐键搜索并动态反馈到url

Blazor 逐键搜索并动态反馈到url 源码 前言: 今天打开了 spotify 网页版找歌, 突然发现这个功能很抓眼球,于是试试blazor能不能模仿一下. 1. 节省时间,直接用模板开搞 新建项目,使用 Bootstrap Blazor App 模板 , 命名为 b22dynamicURL BootstrapBlazor简介: BootstrapBlaz…

uni-app 使用Pinia进行全局状态管理并持久化数据

1.引言 最近在学习移动端的开发&#xff0c;使用uni-app前端应用框架&#xff0c;通过学习B站的视频以及找了一个开发模板&#xff0c;终于是有了一些心得体会。 B站视频1&#xff1a;Day1-01-uni-app小兔鲜儿导学视频_哔哩哔哩_bilibili B站视频2&#xff1a;01-课程和uni的…

PDF压缩工具选哪个?6款免费PDF压缩工具分享

PDF文件已经成为一种常见的文档格式。然而&#xff0c;PDF文件的体积有时可能非常庞大&#xff0c;尤其是在包含大量图像或复杂格式的情况下。选择一个高效的PDF压缩工具就显得尤为重要。小编今天给大家整理了2024年6款市面上反响不错的PDF压缩文件工具。轻松帮助你找到最适合自…

C-study(五).2

逻辑运算符 连接两个完整的关系表达式。 && 逻辑与&#xff0c;ab都为真时&#xff0c;a&&b的值真&#xff0c;其余时候假。 || 逻辑或&#xff0c;ab都为假时&#xff0c;a||b的值假&#xff0c;其余时候真。 ! 逻辑非、只需要一个运算对象&#xff0c;a真&a…

数据结构——(双)链表

文章目录 1. 定义 2. 双链表和单链表的区别 3. 代码示例 3.1 双链表节点和结构定义 3.2 初始化双链表 3.3 返回双链表的长度 3.4 在指定位置插入元素 3.5 在末尾插入元素 3.6 删除指定位置的元素并返回被删除的元素 3.7 删除末尾元素 3.8 获取指定位置的元素 3.9 修…

pandas 在可空列上聚合

pandas支持group_by进行聚合&#xff0c;有如下Excel 按照A B C D四列进行聚合&#xff0c;其中D列可空也就是nan import pandas as pd from pandas import ExcelFile from pathlib import Path import os import io import sys sys.stdout io.TextIOWrapper(sys.stdout.buf…

hdu物联网硬件实验3 按键和中断

学院 班级 学号 姓名 日期 成绩 实验题目 按键和中断 实验目的 实现闪灯功能转换 硬件原理 无 关键代码及注释 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

【IT领域新生必看】探索Java中的对象创建:深入理解`new`与`clone`的对比

文章目录 引言什么是new关键字&#xff1f;使用new关键字的基本语法示例&#xff1a; 什么是clone方法&#xff1f;使用clone方法的基本语法示例&#xff1a; new与clone的区别内存分配与初始化调用方式适用场景性能 new关键字的优缺点优点缺点 clone方法的优缺点优点缺点 深入…

语音模块——LSYT201B模组(超详细)

写在前面&#xff1a; 在嵌入式的学习过程中&#xff0c;语音模块是必不可少的&#xff0c;无论是做项目组合还是单个测试&#xff0c;对于语音模块我们应当有一款合适的模块。今天给大家介绍的是一款质量好、成本低、功能齐全的语音模块——LSYT201B语音模组。它的技术支持详细…

DataWhaleAI夏令营 对话要素提取 Baseline2 微调进阶

Baseline2链接&#xff1b;基于星火大模型的群聊对话分角色要素提取挑战-baseline2 - 飞桨AI Studio星河社区 (baidu.com) 数据集再构造 因为数据集中的对话数据还是标离散的&#xff0c;我们可以使用大模型自己先对数据集做一次抽取&#xff0c;构建一个新的数据集 这里对原…

12.SQL注入-盲注基于时间(base on time)

SQL注入-盲注基于时间(base on time) boolian的盲注类型还有返回信息的状态&#xff0c;但是基于时间的盲注就什么都没有返回信息。 输入payload语句进行睡5秒中&#xff0c;通过开发这工具查看时间&#xff0c;如图所示&#xff0c;会在5秒钟后在执行&#xff0c;因此存在基于…

【SpringCloud】概述 -- 微服务入门

在Java的整个学习过程中&#xff0c;大家势必会听见一些什么分布式-微服务、高并发、高可用这些专业术语&#xff0c;给人的感觉很高级&#xff0c;有一种高深莫测的感觉。可以看一下这篇博客对这些技术架构的演变有一个初步的认识: 服务端⾼并发分布式结构演进之路-CSDN博客文…

数据结构——单向循环链表

文章目录 1. 概念 2. 区别 2.1 结构区别 2.2 访问方式区别 2.3 优缺点对比 3. 流程 4. 基本操作 5. 代码示例 1. 概念 单向循环链表是一种特殊的单链表&#xff0c;其中最后一个节点的后继指针指向头节点&#xff0c;形成一个环。单向循环链表适合用于需要循环访问数据…

UCOS-III 系统移植

1. 移植前准备 1.1 源码下载 UCOS-III Kernel Source&#xff1a; https://github.com/weston-embedded/uC-OS3.git Micriμm CPU Source &#xff1a; https://github.com/weston-embedded/uC-CPU.git Micriμm Lib Source&#xff1a; https://github.com/weston-embedded…

Intellj idea无法启动

个人电脑上安装的是2024.01版本的intellj idea作为开发工具&#xff0c;引入了javaagent作为工具包 但是在一次invaliad cache操作后&#xff0c;intellj idea就无法启动了&#xff0c;双击无响应。 重装了idea后也无效&#xff08;这个是有原因的&#xff0c;下面会讲&#…

java项目总结4

1.正则表达式 用于验证字符串是否满足自己所需要的规则。方法&#xff1a;matches 注意&#xff1a;\在Java中有特殊涵义&#xff0c;是将其它的意思本来化&#xff0c;假设"是用来引用字符串的&#xff0c;但是你如果想要输出它&#xff0c;那是不是就变成了System.out…

机器学习---线性回归

1、线性回归 例如&#xff1a;对于一个房子的价格&#xff0c;其影响因素有很多&#xff0c;例如房子的面积、房子的卧室数量、房子的卫生间数量等等都会影响房子的价格。这些影响因子不妨用 x i x_{i} xi​表示&#xff0c;那么房价 y y y可以用如下公式表示&#xff1a; y …