当前位置: 首页 > news >正文

拼电商客户管理系统

内容来自:尚硅谷

难度:easy

目 标

l 模拟实现一个基于文本界面的 拼电商客户管理系统
l 进一步掌握编程技巧和调试技巧,熟悉面向对象编程
l 主要涉及以下知识点:
Ø 类结构的使用:属性、方法及构造器
Ø 对象的创建与使用
Ø 类的封装性
Ø 声明和使用数组
Ø 数组的插入、删除和替换

关键字的使用:this

 需求说明

模拟实现基于文本界面的拼电商客户管理系统

该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。

项目采用分级菜单方式。主菜单如下:

             -----------------拼电商客户管理系统-----------------

                                     1 添 加 客 户

                                     2 修 改 客 户

                                     3 删 除 客 户

                                     4 客 户 列 表

                                     5 退           出

                                     请选择(1-5)_

每个客户的信息被保存在 Customer 对象中。
以一个 Customer 类型的数组来记录当前所有的客户。
每次“添加客户”(菜单 1 )后,客户( Customer )对象被添加到数组中。
每次“修改客户”(菜单 2 )后,修改后的客户( Customer )对象替换数组中原对象。
每次“删除客户”(菜单 3 )后,客户( Customer )对象被从数组中清除。
执行“客户列表 ”(菜单 4 )时,将列出数组中所有客户的信息。

“添加客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)1

---------------------添加客户---------------------

姓名:佟刚

性别:男

年龄:35

电话:010-56253825

邮箱:tongtong@atguigu.com

---------------------添加完成---------------------

“修改客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)2

---------------------修改客户---------------------

请选择待修改客户编号(-1退出)1

姓名(佟刚)<直接回车表示不修改>

性别()

年龄(35)

电话(010-56253825)

邮箱(tongtong@atguigu.com)tongg@atguigu.com

---------------------修改完成---------------------

“删除客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)3

---------------------删除客户---------------------

请选择待删除客户编号(-1退出)1

确认是否删除(Y/N)y

---------------------删除完成---------------------

“客户列表”的界面及操作过程如下所示:

  ……

   请选择(1-5)4

---------------------------客户列表---------------------------

编号  姓名       性别    年龄   电话                   邮箱

 1    佟刚         男        45     010-56253825   tong@abc.com

 2    封捷         女        36     010-56253825   fengjie@ibm.com

 3    雷丰阳     男        32      010-56253825   leify@163.com

-------------------------客户列表完成-------------------------

 

 

 

 1实现Customer

1. 按照设计要求编写 Customer 类,并编译
2. Customer 类中临时添加一个 main 方法中,作为单元测试方法。

  在方法中创建Customer对象,并调用对象的各个方法,以测试该类是否编写正确。

//package com.atguigu.p2;public class Customer {private String name;private char gender;private int age;private String phone;private String email;public Customer(String name, char gender, int age) {this(name, gender, age, "", "");}
//    public Customer(String name, char gender, int age) {
//        this(name, gender, age, "", "");
//    }public Customer(String name,  char gender, int age, String phone,String email) {this.name = name;this.gender = gender;this.age = age;this.phone = phone;this.email = email;}public String getName() {return name;}public void setName(String name) {this.name = name;}public  char getGender() {return gender;}public void setGender( char gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getDetails() {return name + "\t" + gender + "\t\t" + age + "\t\t" + phone + "\t" + email;}
}

2CustomerList类的设计

l CustomerList Customer 对象的管理模块,内部使用数组管理一组 Customer 对象
l 本类封装以下信息:
Ø Customer[] customers :用来保存客户对象的数组
Ø int total = 0                 :记录已保存客户对象的数量
l 该类至少提供以下构造器和方法:
Ø public CustomerList (int totalCustomer )
Ø public boolean addCustomer (Customer customer)
Ø public boolean replaceCustomer (int index, Customer cust )
Ø public boolean deleteCustomer (int index)
Ø public Customer[] getAllCustomers ()
Ø public Customer getCustomer (int index)
Ø public int getTotal ()

l public CustomerList ( int totalCustomer )
Ø 用途:构造器,用来初始化 customers 数组
Ø 参数: totalCustomer :指定 customers 数组的最大空间
l public boolean addCustomer (Customer customer )
Ø 用途:将参数 customer 添加组中最后一个客户对象记录之后
Ø 参数: customer 指定要添加的客户对象
Ø 返回:添加成功返回 true false 表示数组已满,无法添加
l public boolean replaceCustomer ( int index, Customer cust )
Ø 用途:用参数 customer 替换数组中由 index 指定的对象
Ø 参数: customer 指定替换的新客户对象

             index指定所替换对象在数组中的位置,从0开始

Ø 返回:替换成功返回 true false 表示索引无效,无法替换
l public boolean deleteCustomer ( int index)
Ø 用途:从数组中删除参数 index 指定索引位置的客户对象记录
Ø 参数: index 指定所删除对象在数组中的索引位置,从 0 开始
Ø 返回:删除成功返回 true false 表示索引无效,无法删除
l public Customer[] getAllCustomers ()
Ø 用途:返回数组中记录的所有客户对象
Ø 返回: Customer[] 数组中包含了当前所有客户对象,该数组长度与对象个数相同。
l public Customer getCustomer ( int index)
Ø 用途:返回参数 index 指定索引位置的客户对象记录
Ø 参数: index 指定所要获取的客户在数组中的索引位置,从 0 开始
Ø 返回:封装了客户信息的 Customer 对象

1. 按照设计要求编写 CustomerList 类,并编译
2. CustomerList 类中临时添加一个 main 方法中,作为单元测试方法。
3. 在方法中创建 CustomerList 对象(最多存放 5 个客户对象),然后分别用模拟数据调用以下各个方法,以测试各方法是否编写正确:
addCustomer ()
replaceCustomer ()
deleteCustomer ()
getAllCustomers ()
getCustomer ()
getTotal ()
4. 进一步测试以下情况,以验证该类是否编写正确:
调用 addCustomer 方法,添加至少 5 个以上客户对象时
当数组中客户对象数量为 0 时,仍然调用 replaceCustomer 方法替换对象
当数组中客户对象数量为 0 时,仍然调用 deleteCustomer 方法删除对象
对于 replaceCustomer deleteCustomer getCustomer 的调用,当参数 index 的值无效时(例如 -1 6
getAllCustomers 方法返回的数组长度是否与实际的客户对象数量一致

public class CustomerList {private Customer[] customers;private int total = 0;public CustomerList(int totalCustomer) {customers = new Customer[totalCustomer];}public boolean addCustomer(Customer customer) {if (total >= customers.length) {return false;}customers[total++] = customer;return true;}public Customer getCustomer(int index) {if (index < 0 || index >= total) {return null;}return customers[index];}public boolean replaceCustomer(int index, Customer cust) {if (index < 0 || index >= total) {return false;}customers[index] = cust;return true;}public boolean deleteCustomer(int index) {if (index < 0 || index >= total) {return false;}for (int i = index; i < total - 1; i++) {customers[i] = customers[i + 1];}customers[--total] = null;return true;}public Customer[] getAllCustomers() {Customer[] custs = new Customer[total];for (int i = 0; i < total; i++) {custs[i] = customers[i];}return custs;}}

3CustomerView类的设计

l CustomerView 为主模块,负责菜单的显示和处理用户操作
l 本类封装以下信息:
Ø CustomerList customerList = new CustomerList (10);

  创建最大包含10个客户对象的CustomerList 对象,供以下各成员方法使用。

l 该类至少提供以下方法:
Ø public void enterMainMenu ()
Ø private void addNewCustomer ()
Ø private void modifyCustomer ()
Ø private void deleteCustomer ()
Ø private void listAllCustomers ()

public static void main(String[] args)

l public void enterMainMenu ()
Ø 用途:显示主菜单,响应用户输入,根据用户操作分别调用其他相应的成员方法(如 addNewCustomer ),以完成客户信息处理。
l    private void addNewCustomer ()

  private void modifyCustomer()

  private void deleteCustomer()

  private void listAllCustomers()

Ø 用途:这四个方法分别完成“添加客户”、“修改客户”、“删除客户”和“客户列表”等各菜单功能。

  这四个方法仅供enterMainMenu()方法调用。

l public static void main(String[] args )
Ø 用途:创建 CustomerView 实例,并调用 enterMainMenu () 方法以执行程序。

1. 按照设计要求编写 CustomerView 类,逐一实现各个方法,并编译
2. 执行 main 方法中,测试以下功能:
主菜单显示及操作是否正确
“添加客户”操作是否正确,给用户的提示是否明确合理;测试当添加的客户总数超过 10 时,运行是否正确
“修改客户”操作是否正确,给用户的提示是否明确合理;
“删除客户”操作是否正确,给用户的提示是否明确合理;
“客户列表”操作是否正确,表格是否规整;
3. 思考以下问题:
当软件退出时,所有客户信息便丢失了!运用什么手段可以将这些信息长久保存,以便在下一次运行软件时继续使用?

 

import java.util.Scanner;
//package com.atguigu02.project;
public class CustomerView {private CustomerList customers=new CustomerList(10);public CustomerView() {Customer cust = new Customer("张三", '男', 30, "13843255423","abc@126.com");customers.addCustomer(cust);}public void jianmie(){boolean flag = true;do {System.out.println("----------拼电商客户管理系统----------\n");System.out.println("            1添加客户");System.out.println("            2修改客户");System.out.println("            3删除客户");System.out.println("            4客户列表");System.out.println("            5退   出\n");System.out.print("            请选择(1-5):_");Scanner sc = new Scanner(System.in);int choice = sc.nextInt();switch (choice) {case 1:addcustomer();break;case 2:xiugaiCustomer();break;case 3:shanchuCustomer();break;case 4:customerlist();break;case 5:flag=false;}}while (flag);}private void addcustomer(){System.out.println("------------添加客户------------");System.out.print("姓名:");Scanner sc = new Scanner(System.in);String name = sc.nextLine();System.out.print("性别:");char gender = sc.next().charAt(0);System.out.print("年龄:");int age = sc.nextInt();sc.nextLine();System.out.print("电话:");String phone = sc.nextLine();System.out.print("邮箱:");String email = sc.nextLine();Customer cust = new Customer(name,gender,age,phone,email);boolean flag = customers.addCustomer(cust);;if(flag){System.out.println("----------添加完成-----------");}else{System.out.println("-----------记录已满,无法添加-------");}}public void xiugaiCustomer(){int index = 0;Customer cust = null;for(;;){System.out.println("---------修改客户----------");System.out.println("请选择待修改客户编号(-1退出):");Scanner sc = new Scanner(System.in);index = sc.nextInt();if (index == -1) {return;}cust = customers.getCustomer(index - 1);if (cust == null) {System.out.println("无法找到指定客户!");} elsebreak;}System.out.print("姓名(" + cust.getName() + "):");Scanner sc = new Scanner(System.in);String name = sc.nextLine();String oldname=cust.getName();if(name!=oldname){oldname=name;}System.out.print("性别(" + cust.getGender() + "):");char gender = sc.next().charAt(0);char oldgender=cust.getGender();if(gender!=oldgender){oldgender=gender;}System.out.print("年龄(" + cust.getAge() + "):");int age =sc.nextInt();int oldage=cust.getAge();if(age!=oldage){oldage=age;}sc.nextLine();System.out.print("电话(" + cust.getPhone() + "):");String phone=sc.nextLine();String oldphone = cust.getPhone();if(phone!=oldphone) {oldphone = phone;}System.out.print("邮箱(" + cust.getEmail() + "):");String email=sc.nextLine();String oldemail = cust.getEmail();if(email!=oldemail){oldemail=email;}cust = new Customer(oldname, oldgender, oldage, oldphone, oldemail);boolean flag = customers.replaceCustomer(index-1, cust);if (flag) {System.out.println("---------------------修改完成---------------------");} else {System.out.println("----------无法找到指定客户,修改失败--------------");}}public void shanchuCustomer() {Customer cust = null;int num = 0;for (; ; ) {System.out.println("-------------删除客户-------------");System.out.println("请选择待删除客户编号(-1退出):");Scanner sc = new Scanner(System.in);num = sc.nextInt();if (num == -1) {return;}cust = customers.getCustomer(num - 1);if (cust == null) {System.out.println("未找到目标用户");} elsebreak;}System.out.println("确认是否删除(Y/N):");Scanner sc = new Scanner(System.in);String choice = sc.nextLine();if(choice=="N"){return;}boolean flag = customers.deleteCustomer(num - 1);if (flag) {System.out.println("-----------删除完成------------");}else {System.out.println("-------无法找到指定客户,删除失败------");}}public void customerlist(){System.out.println("---------------客户列表-----------------");Customer[] custs = customers.getAllCustomers();if(custs.length==0){System.out.println("目前列表中暂无客户");}else{System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t\t邮箱");for (int i = 0; i < custs.length; i++) {System.out.println((i+1) + "\t" + custs[i].getDetails());
//                    System.out.println(System.out.println(i+ 1 + "\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t" + custs[i].getAge() + "\t\t" + custs[i].getPhone() + "\t" + custs[i].getEmail());}System.out.println("-----------客户列表完成------------");}}public static void main(String[] args) {CustomerView cView = new CustomerView();cView.jianmie();}
}

相关文章:

拼电商客户管理系统

内容来自&#xff1a;尚硅谷 难度&#xff1a;easy 目 标 l 模拟实现一个基于文本界面的 《 拼电商客户管理系统 》 l 进一步掌握编程技巧和调试技巧&#xff0c;熟悉面向对象编程 l 主要涉及以下知识点&#xff1a; 类结构的使用&#xff1a;属性、方法及构造器 对象的创建与…...

华为:Wireshark的OSPF抓包分析过程

一、OSPF 的5包7状态 5个数据包 1.Hello&#xff1a;发现、建立邻居&#xff08;邻接&#xff09;关系、维持、周期保活&#xff1b;存在全网唯一的RID&#xff0c;使用IP地址表示 2.DBD&#xff1a;本地的数据库的目录&#xff08;摘要&#xff09;&#xff0c;LSDB的目录&…...

Android项目优化同步速度

最近项目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg库&#xff0c;发现原来通过google官方的代码仓&#xff0c;下载太慢了&#xff0c;每秒KB级别的速度。&#xff08;之前下gradle/gradle plugin都不至于这么慢&#xff09;&#xff0c;于是想到配置国内镜像源来提…...

在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05

一、说明 前端技术体系&#xff1a;Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系&#xff1a;Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统&#xff1a;roncoo-education&#xff08;核心框架&#xff1a;S…...

STM32-GPIO详解

目录 一&#xff1a;GPIO基本概念 ​编辑 二&#xff1a;GPIO的实际应用 三&#xff1a;功能描述 四&#xff1a;GPIO库函数 五&#xff1a;寄存器 GPIO相关寄存器功能 一&#xff1a;GPIO基本概念 GPIO是英文General Purpose Input/Output的缩写&#xff0c;中文翻译为…...

【Framework系列之Client】UIManager和UIPanel模块介绍

今天来介绍一下UIManager和UIPanel模块&#xff0c;话不多说直接开始。 UIManager 功能介绍 UIManager是管理UIPanel的唯一模块&#xff0c;UIManager的主要功能包括&#xff1a; 提供打开、隐藏、关闭UIPanel的相关接口。负责UIPanel对象的创建以及初始化。负责储存UIPanel对…...

阿里云操作系统控制台——ECS操作与性能优化

引言&#xff1a;在数字化时代&#xff0c;云服务器作为强大的计算资源承载平台&#xff0c;为企业和开发者提供了灵活且高效的服务。本文将详细介绍如何一步步操作云服务器 ECS&#xff0c;从开通到组件安装&#xff0c;再到内存全景诊断&#xff0c;帮助快速上手&#xff0c;…...

【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)

背景&#xff1a; 已经用这个脚本的记得设置Wifi时候&#xff0c;关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开&#xff0c;一天要重新连接&#xff0c;点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本&#xff0c;那样我就可以解放双手&…...

第51天:Web开发-JavaEE应用SpringBoot栈身份验证JWT令牌Security鉴权安全绕过

#知识点 1、安全开发-JavaEE-身份验证-JWT&Security 2、安全开发-JavaEE-安全问题-不安全写法&版本漏洞 #开发框架-SpringBoot 参考&#xff1a;Spring Boot 中文文档 一、身份验证的常见技术&#xff1a; 1、JWT 2、Shiro 3、Spring Security 4、OAuth 2.0 5、SSO 6、…...

中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)

OceanBase《DB 大咖说》第 15 期&#xff0c;我们邀请到了中原银行金融科技部数据团队负责人&#xff0c;吕春雷。本文为本期大咖说的精选。 吕春雷是一位资历深厚的数据库专家&#xff0c;从传统制造企业、IT企业、甲骨文公司到中原银行&#xff0c;他在数据库技术与运维管理…...

Java面试第八山!《Spring框架》

一、Spring框架概述 Spring是Java企业级应用开发的核心框架&#xff0c;通过控制反转&#xff08;IoC&#xff09;和 面向切面编程&#xff08;AOP&#xff09;实现模块解耦&#xff0c;简化开发流程。其核心优势包括依赖注入、声明式事务管理、集成主流ORM框架&#xff08;如…...

LangChain教程 - Agent - 支持 9 种 ReAct 交互

引言 LangChain 总结了 9 种经典的复杂模型交互模式&#xff0c;每种都针对特定任务设计&#xff0c;兼具独特优势与适用场景&#xff0c;内容涵盖&#xff1a; ReAct、Function Call、知识库、搜索等&#xff0c;使用这些模式可以大大简化这些场景开发难度。这些模式可以使用…...

蓝桥杯备赛日记【day1】(c++赛道)

一、裁纸刀问题&#xff08;2022、规律、思维、省赛&#xff09; 解法思路&#xff1a; 参考题目给出的例子发现。不管要裁剪多少次。最外围的四次是固定的。然后通过观察发现&#xff0c;我们的行的裁剪次数为&#xff08;m-1&#xff09; 次&#xff0c;而每行都需要裁剪列数…...

【大模型基础_毛玉仁】1.4 语言模型的采样方法

【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1&#xff09;贪心搜索&#xff08;GreedySearch&#xff09;2&#xff09;波束搜索&#xff08;BeamSearch&#xff09; 1.4.2 随机采样方法1&#xff09;Top-K 采样2&#xff09;Top…...

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;SAM 文件 & Windows 本地认证流程 0x0101&#xff1a;SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的&#xff0c;在登录 Windows 的时候&am…...

基于SNR估计的自适应码率LDPC编译码算法matlab性能仿真,对比固定码率LDPC的系统传输性能

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 基于序列的SNR估计 2.2 基于SNR估计值进行码率切换 2.3 根据数据量进行码率切换 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&…...

opencv 模板匹配方法汇总

在OpenCV中&#xff0c;模板匹配是一种在较大图像中查找特定模板图像位置的技术。OpenCV提供了多种模板匹配方法&#xff0c;通过cv2.matchTemplate函数实现&#xff0c;该函数支持的匹配方式主要有以下6种&#xff0c;下面详细介绍每种方法的原理、特点和适用场景。 1. cv2.T…...

Embedding技术:DeepWalkNode2vec

引言 在推荐系统中&#xff0c;Graph Embedding技术已经成为一种强大的工具&#xff0c;用于捕捉用户和物品之间的复杂关系。本文将介绍Graph Embedding的基本概念、原理及其在推荐系统中的应用。 什么是Graph Embedding&#xff1f; Graph Embedding是一种将图中的节点映射…...

微信小程序注册组件

在微信小程序中注册组件分为自定义组件的创建和全局/局部注册&#xff0c;下面为你详细介绍具体步骤和示例。 自定义组件的创建 自定义组件由四个文件组成&#xff0c;分别是 .js&#xff08;脚本文件&#xff09;、.json&#xff08;配置文件&#xff09;、.wxml&#xff08…...

【docker】安装mysql,修改端口号并重启,root改密

我的docker笔记 【centOS】安装docker环境&#xff0c;替换国内镜像 1. 配置镜像源 使用阿里云镜像加速器&#xff0c;编辑/etc/docker/daemon.json sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https:/…...

自定义wordpress三级导航菜单代码

首先&#xff0c;在你的主题functions.php文件中&#xff0c;添加以下代码以注册一个新的菜单位置&#xff1a; function mytheme_register_menus() {register_nav_menus(array(primary-menu > __(Primary Menu, mytheme))); } add_action(init, mytheme_register_menus); …...

洛谷 P1480 A/B Problem(高精度详解)c++

题目链接&#xff1a;P1480 A/B Problem - 洛谷 1.题目分析 1&#xff1a;说明这里是高精度除以低精度的形式&#xff0c;为什么不是高精度除以高精度的形式&#xff0c;是因为它很少见&#xff0c;它的模拟方式是用高精度减法来做的&#xff0c;并不能用小学列竖式的方法模拟…...

JAVA入门——网络编程简介

自己学习时的笔记&#xff0c;可能有点水&#xff08; 以后可能还会补充&#xff08;大概率不会&#xff09; 一、基本概念 网络编程三要素&#xff1a; IP 设备在网络中的唯一标识 端口号 应用软件在设备中的唯一标识两个字节表示的整数&#xff0c;0~1023用于知名的网络…...

Ubuntu 合上屏幕 不待机 设置

有时候需要Ubuntu的机器合上屏幕的时候也能正常工作&#xff0c;而不是处于待机状态。 需要进行配置文件的设置&#xff0c;并重启即可。 1. 修改配置文件 /etc/systemd/logind.conf sudo vi /etc/systemd/logind.conf 然后输入i&#xff0c;进入插入状态&#xff0c;修改如…...

捣鼓180天,我写了一个相册小程序

&#x1f64b;为什么要做土著相册这样一个产品&#xff1f; ➡️在高压工作之余&#xff0c;我喜欢浏览B站上的熊猫幼崽视频来放松心情。有天在家族群里看到了大嫂分享的侄女卖萌照片&#xff0c;同样感到非常解压。于是开始翻阅过去的聊天记录&#xff0c;却发现部分图片和视…...

短分享-Flink图构建

一、背景 通过简单的书写map、union、keyby等代码&#xff0c;Flink便能构建起一个庞大的分布式计算任务&#xff0c;Flink如何实现的这个酷炫功能呢&#xff1f;我们本次分享Flink做的第一步&#xff0c;将代码解析构建成图 源码基于Flink 2.10&#xff0c;书籍参考《Flink核…...

【监督学习】支持向量机步骤及matlab实现

支持向量机 &#xff08;四&#xff09;支持向量机1.算法步骤2. MATLAB 实现参考资料 &#xff08;四&#xff09;支持向量机 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种用于分类、回归分析以及异常检测的监督学习模型。SVM特别擅长处理高维空间的…...

机器学习-随机森林解析

目录 一、.随机森林的思想 二、随机森林构建步骤 1.自助采样 2.特征随机选择 3构建决策树 4.集成预测 三. 随机森林的关键优势 ​**(1) 减少过拟合** ​**(2) 高效并行化** ​**(3) 特征重要性评估** ​**(4) 耐抗噪声** 四. 随机森林的优缺点 ​优点 ​缺点 五.…...

Javaweb后端spring事务管理 事务四大特性ACID

2步操作&#xff0c;只能同时成功&#xff0c;同时失败&#xff0c;要放在一个事务中&#xff0c;最后提交事务或者回滚事务 事务控制 事务管理进阶 事务的注解 这是所有异常都会回滚 事务注解 事务的传播行为 四大特性...

在Spring Boot + MyBatis中优雅处理多表数据清洗:基于XML的配置化方案

问题背景 在实际业务中&#xff0c;我们常会遇到数据冗余问题。例如&#xff0c;一个公司表&#xff08;sys_company&#xff09;中存在多条相同公司名的记录&#xff0c;但只有一条有效&#xff08;del_flag0&#xff09;&#xff0c;其余需要删除。删除前需将关联表&#xf…...