fastapi房产销售系统
说明:
我希望用fastapi写几个接口,查询房产交易系统的几条数据,然后在postman里面测试
- 查询客户所有预约记录(含房源信息)需要对应销售经理
- 查询客户所有订单(含房源信息)
- 统计销售经理名下所有房源销售情况和销售金额
- 查看房源详情及评价列表
step1:sql数据库,建表,添加数据,写查询sql
-- 用户表(管理员/客户/销售经理)
CREATE TABLE `user` (`user_id` INT PRIMARY KEY AUTO_INCREMENT,`username` VARCHAR(50) UNIQUE NOT NULL,`password` VARCHAR(100) NOT NULL,`role` ENUM('admin', 'customer', 'sales') NOT NULL DEFAULT 'customer',`real_name` VARCHAR(50),`phone` VARCHAR(20),`email` VARCHAR(50),`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP
);-- 房源信息表
CREATE TABLE `house` (`house_id` INT PRIMARY KEY AUTO_INCREMENT,`title` VARCHAR(100) NOT NULL,`price` DECIMAL(12,2) NOT NULL,`area` DECIMAL(6,2) COMMENT '面积(平方米)',`room_type` VARCHAR(20) COMMENT '户型(如3室2厅)',`address` VARCHAR(200),`status` ENUM('pending', 'listed', 'sold') DEFAULT 'pending',`sales_id` INT COMMENT '负责的销售经理ID',`description` TEXT,`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (`sales_id`) REFERENCES `user`(`user_id`)
);-- 预约看房表
CREATE TABLE `appointment` (`appoint_id` INT PRIMARY KEY AUTO_INCREMENT,`user_id` INT NOT NULL,`house_id` INT NOT NULL,`appoint_time` DATETIME NOT NULL,`status` ENUM('pending', 'confirmed', 'canceled') DEFAULT 'pending',`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`),FOREIGN KEY (`house_id`) REFERENCES `house`(`house_id`)
);-- 订单表
CREATE TABLE `order` (`order_id` VARCHAR(32) PRIMARY KEY COMMENT '订单号(如UUID)',`user_id` INT NOT NULL,`house_id` INT NOT NULL,`total_price` DECIMAL(12,2) NOT NULL,`payment_status` ENUM('unpaid', 'paid') DEFAULT 'unpaid',`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`),FOREIGN KEY (`house_id`) REFERENCES `house`(`house_id`)
);-- 房源评价表
CREATE TABLE `comment` (`comment_id` INT PRIMARY KEY AUTO_INCREMENT,`user_id` INT NOT NULL,`house_id` INT NOT NULL,`content` TEXT NOT NULL,`rating` TINYINT CHECK (rating BETWEEN 1 AND 5),`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`),FOREIGN KEY (`house_id`) REFERENCES `house`(`house_id`)
);-- 用户表(包含10条记录)
INSERT INTO `user` (username, password, role, real_name, phone, email, create_time) VALUES('admin', '123456', 'admin', '系统管理员', '13800000000', 'admin@example.com', '2025-03-01 09:00:00'),('sales_01', '123456', 'sales', '张伟', '13911111111', 'sales_01@example.com', '2025-03-01 09:00:00'),('sales_02', '123456', 'sales', '李娜', '13922222222', 'sales_02@example.com', '2025-03-01 09:00:00'),('sales_03', '123456', 'sales', '王刚', '13933333333', 'sales_03@example.com', '2025-03-01 09:00:00'),('customer_01', '123456', 'customer', '陈浩', '13844444444', 'customer_01@example.com', '2025-03-01 09:00:00'),('customer_02', '123456', 'customer', '刘芳', '13855555555', 'customer_02@example.com', '2025-03-01 09:00:00'),('customer_03', '123456', 'customer', '张婷', '13866666666', 'customer_03@example.com', '2025-03-01 09:00:00'),('customer_04', '123456', 'customer', '廖学彬', '13877777777', 'customer_04@example.com', '2025-03-01 09:00:00'),('customer_05', '123456', 'customer', '王芳', '13888888888', 'customer_05@example.com', '2025-03-01 09:00:00'),('customer_06', '123456', 'customer', '赵敏', '13899999999', 'customer_06@example.com', '2025-03-01 09:00:00');-- 房源信息表(10条记录)
INSERT INTO `house` (title, price, area, room_type, address, sales_id, status, description, create_time) VALUES('SOHO', 12000000.00, 150.0, '3室2厅', '北街道', 2, 'listed', '高端商务公寓,带健身房和游泳池', '2025-03-01 09:00:00'),('村学区房', 18000000.00, 120.0, '2室1厅', '北大街', 3, 'sold', '重点小学学区房,南北通透', '2025-03-01 09:00:00'),('陆景房', 25000000.00, 200.0, '4室3厅', '上环路', 4, 'pending', '高层江景住宅,视野开阔', '2025-03-01 09:00:00'),('金街铺', 30000000.00, 80.0, '临街商铺', '北融街', 2, 'listed', '黄金地段商铺,租金回报率高', '2025-03-01 09:00:00'),('东环别墅', 60000000.00, 300.0, '独栋别墅', '北北路', 3, 'sold', '豪华独栋别墅,带私人花园', '2025-03-01 09:00:00'),('科技园写字楼', 80000000.00, 150.0, '甲级写字楼', '深技园', 4, 'pending', '现代化办公大楼,配套完善', '2025-03-01 09:00:00'),('老洋房', 45000000.00, 100.0, '2室1厅', '上路', 2, 'listed', '历史建筑改造,复古风格', '2025-03-01 09:00:00'),('广高端公寓', 10000000.00, 130.0, '3室2厅', '广江新城', 3, 'sold', 'CBD核心区高端公寓', '2025-03-01 09:00:00'),('州湖区景观房', 28000000.00, 180.0, '4室2厅', '州杨公堤', 4, 'pending', '湖滨景观住宅,环境优美', '2025-03-01 09:00:00'),('都府新科技园', 15000000.00, 120.0, '3室2厅', '都府大道', 2, 'listed', '新兴科技产业园区,交通便利', '2025-03-01 09:00:00');-- 预约看房表(10条记录)
INSERT INTO `appointment` (user_id, house_id, appoint_time, status, create_time) VALUES(6, 1, '2025-04-15 10:00:00', 'confirmed', '2025-04-10 09:00:00'),(7, 2, '2025-04-16 14:30:00', 'pending', '2025-04-10 09:00:00'),(8, 3, '2025-04-17 09:00:00', 'canceled', '2025-04-10 09:00:00'),(9, 4, '2025-04-18 11:00:00', 'confirmed', '2025-04-10 09:00:00'),(10,5, '2025-04-19 15:00:00', 'pending', '2025-04-10 09:00:00'),(6, 6, '2025-04-20 10:00:00', 'confirmed', '2025-04-10 09:00:00'),(7, 7, '2025-04-21 14:00:00', 'canceled', '2025-04-10 09:00:00'),(8, 8, '2025-04-22 09:00:00', 'confirmed', '2025-04-10 09:00:00'),(9, 9, '2025-04-23 11:00:00', 'pending', '2025-04-10 09:00:00'),(10,10, '2025-04-24 15:00:00', 'confirmed', '2025-04-10 09:00:00');-- 订单表(10条记录)
INSERT INTO `order` (order_id, user_id, house_id, total_price, payment_status, create_time) VALUES('202504100001', 6, 1, 12000000.00, 'paid', '2025-04-10 09:00:00'),('202504100002', 7, 2, 18000000.00, 'unpaid', '2025-04-10 09:00:00'),('202504100003', 8, 3, 25000000.00, 'paid', '2025-04-10 09:00:00'),('202504100004', 9, 4, 30000000.00, 'unpaid', '2025-04-10 09:00:00'),('202504100005', 10,5, 60000000.00, 'paid', '2025-04-10 09:00:00'),('202504100006', 6, 6, 80000000.00, 'unpaid', '2025-04-10 09:00:00'),('202504100007', 7, 7, 45000000.00, 'paid', '2025-04-10 09:00:00'),('202504100008', 8, 8, 10000000.00, 'unpaid', '2025-04-10 09:00:00'),('202504100009', 9, 9, 28000000.00, 'paid', '2025-04-10 09:00:00'),('202504100010', 10,10, 15000000.00, 'unpaid', '2025-04-10 09:00:00');-- 房源评价表(10条记录)
INSERT INTO `comment` (user_id, house_id, content, rating, create_time) VALUES(6, 1, '房屋设施非常完善,交通便利!', 5, '2025-04-10 09:00:00'),(7, 2, '学区房位置优越,但周边配套一般。', 4, '2025-04-10 09:00:00'),(8, 3, '江景房视野开阔,但物业费较高。', 3, '2025-04-10 09:00:00'),(9, 4, '商铺租金回报率高,适合投资。', 5, '2025-04-10 09:00:00'),(10,5, '别墅面积大,适合家庭居住。', 4, '2025-04-10 09:00:00'),(6,6, '写字楼采光好,租赁需求旺。', 5, '2025-04-10 09:00:00'),(7,7, '老洋房设计独特,但维护成本高。', 3, '2025-04-10 09:00:00'),(8,8, '公寓性价比高,适合年轻人。', 4, '2025-04-10 09:00:00'),(9,9, '景观房环境优美,但离市区较远。', 3, '2025-04-10 09:00:00'),(10,10, '科技园区交通便利,未来发展潜力大。', 5, '2025-04-10 09:00:00');# 1. 查询客户所有预约记录(含房源信息)需要对应销售经理
SELECTu.real_name AS customer_name,u.user_id AS customer_id,a.appoint_time,a.status,h.title,h.address,h.price,h.room_type,s.real_name,s.phone
FROMappointment aINNER JOIN user u ON a.user_id = u.user_idLEFT JOIN house h ON a.house_id = h.house_idINNER JOIN user s ON h.sales_id = s.user_id
WHEREu.role = 'customer'
ORDER BYa.create_time DESC;# 2. 查询客户所有订单(含房源信息)
SELECT o.order_id, u.real_name AS customer_name, u.user_id AS customer_id,o.total_price,o.payment_status, h.title, h.address, h.status AS house_status
FROM `order` oJOIN user u ON o.user_id = u.user_idJOIN house h ON o.house_id = h.house_id
WHERE u.role = 'customer'
ORDER BY o.create_time DESC;# 3. 统计销售经理名下所有房源销售情况和销售金额 ,并列出房源位置信息,和交易时间
SELECT u.real_name AS sales_manager,COUNT(DISTINCT h.house_id) AS sold_count,SUM(o.total_price) AS total_sales
FROM house hJOIN user u ON h.sales_id = u.user_idJOIN `order` o ON h.house_id = o.house_id
WHERE u.role = 'sales' AND h.status = 'sold'
GROUP BY u.user_id;# 4. 查看房源详情及评价列表
SELECT h.title, h.price, h.area, h.room_type, h.address,c.content AS evaluation, c.rating,c.house_id, c.content, c.create_time AS eval_time
FROM house hLEFT JOIN comment c ON h.house_id = c.house_id
ORDER BY h.house_id, c.create_time DESC;
step2:fastapi路由和查询 C:\Users\Administrator\PycharmProjects\FastAPIProject\main.py
from fastapi import FastAPI, HTTPException
import pymysql.cursors
app = FastAPI()
# 数据库连接配置
DB_CONFIG = {'host': 'localhost','user': 'root','password': '123456','db': 'school_db','charset': 'utf8mb4','cursorclass': pymysql.cursors.DictCursor
}
# 查询数据库的函数
def query_database(query: str, params=None):try:connection = pymysql.connect(**DB_CONFIG)with connection.cursor() as cursor:cursor.execute(query, params)result = cursor.fetchall()connection.close()return resultexcept Exception as e:raise HTTPException(status_code=500, detail=str(e))@app.get("/customer_appointments/{customer_id}")
async def get_customer_appointments(customer_id: int):query = """SELECT a.appoint_time, a.status, a.create_time,h.title, h.address, h.room_type, h.price,s.real_name AS sales_manager, s.phoneFROM appointment aINNER JOIN user u ON a.user_id = u.user_idLEFT JOIN house h ON a.house_id = h.house_idINNER JOIN user s ON h.sales_id = s.user_idWHERE u.role = 'customer' AND a.user_id = %sORDER BY a.create_time DESC"""data = query_database(query, (customer_id,))return {"data": data}@app.get("/customer_orders/{customer_id}")
async def get_customer_orders(customer_id: int):query = """SELECT o.order_id, o.total_price, o.payment_status, o.create_time,h.title, h.address, h.status AS house_statusFROM `order` oJOIN user u ON o.user_id = u.user_idJOIN house h ON o.house_id = h.house_idWHERE u.role = 'customer' AND o.user_id = %sORDER BY o.create_time DESC"""data = query_database(query, (customer_id,))return {"data": data}@app.get("/sales_stats/{sales_id}")
async def get_sales_stats(sales_id: int):query = """SELECT COUNT(DISTINCT o.house_id) AS sold_count,SUM(o.total_price) AS total_sales,AVG(o.total_price) AS avg_priceFROM `order` oJOIN house h ON o.house_id = h.house_idWHERE h.sales_id = %s AND h.status = 'sold'"""data = query_database(query, (sales_id,))return {"data": data[0] if data else {}}@app.get("/house_details/{house_id}")
async def get_house_details(house_id: int):# 房源基本信息house_query = """SELECT title, price, area, room_type, address, description, status, create_timeFROM house WHERE house_id = %s"""house_data = query_database(house_query, (house_id,))# 关联评价信息comment_query = """SELECT c.content, c.rating, c.create_time, u.real_nameFROM comment cJOIN user u ON c.user_id = u.user_idWHERE c.house_id = %sORDER BY c.create_time DESC"""comment_data = query_database(comment_query, (house_id,))return {"house_info": house_data[0] if house_data else {},"comments": comment_data}
# 启动应用
if __name__ == "__main__":import uvicornuvicorn.run(app, host="0.0.0.0", port=8000)
step3:postman验证
用fastapi帮我写4个查询接口,参考下面的代码格式
1. 查询客户所有预约记录(含房源信息)需要对应销售经理
2. 查询客户所有订单(含房源信息)3. 统计销售经理名下所有房源销售情况和销售金额4. 查看房源详情及评价列表http://localhost:8000/customer_appointments/6{"data": [{"appoint_time": "2025-04-15T10:00:00","status": "confirmed","create_time": "2025-04-10T09:00:00","title": "朝","address": "街道","room_type": "3室2厅","price": 12000000.0,"sales_manager": "张伟","phone": "13911111111"},{"appoint_time": "2025-04-20T10:00:00","status": "confirmed","create_time": "2025-04-10T09:00:00","title": "字楼","address": "技园","room_type": "楼","price": 80000000.0,"sales_manager": "王刚","phone": "13933333333"}]
}http://localhost:8000/customer_orders/6{"data": [{"order_id": "202504100001","total_price": 12000000.0,"payment_status": "paid","create_time": "2025-04-10T09:00:00","title": "","address": "道","house_status": "listed"},{"order_id": "202504100006","total_price": 80000000.0,"payment_status": "unpaid","create_time": "2025-04-10T09:00:00","title": "字楼","address": "技园","house_status": "pending"}]
}http://localhost:8000/sales_stats/3{"data": {"sold_count": 3,"total_sales": 88000000.0,"avg_price": 29333333.333333}
}http://localhost:8000/house_details/1{"house_info": {"title": "","price": 12000000.0,"area": 150.0,"room_type": "3室2厅","address": "道","description": "高端商务公寓,带健身房和游泳池","status": "listed","create_time": "2025-03-01T09:00:00"},"comments": [{"content": "房屋设施非常完善,交通便利!","rating": 5,"create_time": "2025-04-10T09:00:00","real_name": "刘芳"}]
}
end
相关文章:
fastapi房产销售系统
说明: 我希望用fastapi写几个接口,查询房产交易系统的几条数据,然后在postman里面测试 查询客户所有预约记录(含房源信息)需要对应销售经理查询客户所有订单(含房源信息)统计销售经理名下所有房…...
swift -(5) 汇编分析结构体、类的内存布局
一、结构体 在 Swift 标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分 比如Bool、 Int、 Double、 String、 Array、 Dictionary等常见类型都是结构体 ① struct Date { ② var year: Int ③ var month: Int ④ …...
软件工程笔记下
从程序到软件☆ 章节 知识点 概论☆ 软件的定义,特点,生存周期。软件工程的概论。软件危机。 1.☆软件:软件程序数据文档 (1)软件:是指在计算机系统的支持下,能够完成特定功能与性能的包括…...
ElementUI 级联选择器el-cascader启用选择任意一级选项,选中后关闭下拉框
1、启用选择任意一级选项 在 el-cascader 标签上加上配置项: :props"{ checkStrictly: true }"例如: <el-cascaderref"selectedArrRef"v-model"selectedArr":options"optionsList":props"{ checkStri…...
【项目日记(九)】细节优化与对比测试
前言 上面我们对申请和释放的过程都已写完,并进行了单线程的联调。本期我们来对一些细节进行优化以及与malloc 进行对比测试。 目录 前言 一、大于256KB的内存申请问题 • 申请过程 • 释放过程 • 简单测试 二、使用定长内存池脱离使用new 三、优化释放对…...
PyTorch系列教程:编写高效模型训练流程
当使用PyTorch开发机器学习模型时,建立一个有效的训练循环是至关重要的。这个过程包括组织和执行对数据、参数和计算资源的操作序列。让我们深入了解关键组件,并演示如何构建一个精细的训练循环流程,有效地处理数据处理,向前和向后…...
10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 第一篇:Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…...
C++编程指南24 - 避免线程频繁的创建和销毁
一:概述 线程的创建和销毁是昂贵的操作,尤其在多线程程序中频繁创建和销毁线程时,可能会导致性能问题。 二:示例 这段代码中,dispatcher 每收到一个 Message 就创建一个新的线程来处理这个消息。这种方式虽然简单&…...
C语言——【全局变量和局部变量】
🚀个人主页:fasdfdaslsfadasdadf 📖收入专栏:C语言 🌍文章目入 1.🚀 全局变量2.🚀 局部变量3.🚀 局部和全局变量,名字相同呢? 1.🚀 全局变量 全局变量&…...
浅谈 DeepSeek 对 DBA 的影响
引言: 在人工智能技术飞速发展的背景下,DeepSeek 作为一款基于混合专家模型(MoE)和强化学习技术的大语言模型,正在重塑传统数据库管理(DBA)的工作模式。通过结合其强大的自然语言处理能力、推理…...
Web服务器配置
配置虚拟主机:启动XAMPP的Apache,在htdocs目录中创建www.php.test目录 创建index.html,内容为“Welcome www.php.test”,访问两个虚拟主机 访问权限控制 在Apache的主配置文件httpd.conf中,默认已经添加了一些目录的…...
DeepSeek-R1本地化部署(Mac)
一、下载 Ollama 本地化部署需要用到 Ollama,它能支持很多大模型。官方网站:https://ollama.com/ 点击 Download 即可,支持macOS,Linux 和 Windows;我下载的是 mac 版本,要求macOS 11 Big Sur or later,Ol…...
Java面试第九山!《SpringBoot框架》
引言 你是否经历过这样的场景?想快速开发一个Java Web应用,却被XML配置、依赖冲突、服务器部署搞得焦头烂额。Spring Boot的诞生,正是为了解决这些"配置地狱"问题。 对比项Spring Boot传统 Spring配置复杂度自动配置,…...
Java 中数据脱敏的实现
数据脱敏 首先,要思考一个问题,SpringBoot 查询到的一条数据是一个 Java 对象,为什么返回给前端时候,前端拿到的却是 JSON 格式的数据呢? 是因为 SpringBoot 默认采用了 Jackson 作为序列化器,而 Jackson…...
PyQt组件间的通信方式
PyQt组件间的通信方式 PyQt组件间的通信方式 1. 组件介绍 1.1 组件的定义1.2 组件的分类 2. 组件的通信方式 2.1 信号与槽(Signal & Slot) 1. 组件介绍 在 Qt 框架中,组件(Component)是构建图形用户界面&am…...
视频理解开山之作 “双流网络”
1 论文核心信息 1.1核心问题 任务:如何利用深度学习方法进行视频中的动作识别(Action Recognition)。挑战: 视频包含时空信息,既需要捕捉静态外观特征(Spatial Information),也需要…...
基于Matlab的人脸识别的二维PCA
一、基本原理 传统 PCA 在处理图像数据时,需将二维图像矩阵拉伸为一维向量,这使得数据维度剧增,引发高计算成本与存储压力。与之不同,2DPCA 直接基于二维图像矩阵展开运算。 它着眼于图像矩阵的列向量,构建协方差矩阵…...
Java直通车系列15【Spring MVC】(ModelAndView 使用)
目录 1. ModelAndView 概述 2. ModelAndView 的主要属性和方法 主要属性 主要方法 3. 场景示例 示例 1:简单的 ModelAndView 使用 示例 2:使用 ModelAndView 处理列表数据 示例 3:使用 ModelAndView 处理异常情况 1. ModelAndView 概…...
考研数一非数竞赛复习之Stolz定理求解数列极限
在非数类大学生数学竞赛中,Stolz定理作为一种强大的工具,经常被用来解决和式数列极限的问题,也被誉为离散版的’洛必达’方法,它提供了一种简洁而有效的方法,使得原本复杂繁琐的极限计算过程变得直观明了。本文&#x…...
Java在小米SU7 Ultra汽车中的技术赋能
目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…...
【简单的C++围棋游戏开发示例】
C围棋游戏开发简单示例(控制台版) 核心代码实现 #include <iostream> #include <vector> #include <queue> using namespace std;const int SIZE 9; // 简化棋盘为9x9:ml-citation{ref"1" data"citationList&…...
DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)
DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…...
HCIA-DHCP
1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多,容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...
前端面试题 口语化复述解答(从2025.3.8 开始频繁更新中)
背景 看了很多面试题及其答案。但是过于标准化,一般不能直接用于回复面试官,这里我将总结一系列面试题,用于自我复习也乐于分享给大家,欢迎大家提供建议,我必不断完善之。 Javascript ES6 1. var let const 的区别…...
网络安全技术和协议(高软43)
系列文章目录 网络安全技术和协议 文章目录 系列文章目录前言一、网络安全技术1.防火墙2.入侵检测系统IDS3.入侵防御系统IPS 二、网络攻击和威胁三、网络安全协议四、真题在这里插入图片描述 总结 前言 本节讲明网络安全技术和协议方面的相关知识。 一、网络安全技术 1.防火…...
K8S学习之基础十七:k8s的蓝绿部署
蓝绿部署概述 蓝绿部署中,一共有两套系统,一套是正在提供服务的系统,一套是准备发布的系统。两套系统都是功能完善、正在运行的系统,只是版本和对外服务情况不同。 开发新版本,要用新版本替换线上的旧版本&…...
【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率
联合概率、边缘概率、条件概率 联合概率边缘概率条件概率全概率 一副标准扑克牌有 54 张,包括 52 张常规牌(13 个点数,每个点数有 4 种花色)和 2 张王(大、小王)。我们从中随机抽取一张牌,定义以…...
批量插入对比-mysql-oracle-sqlserver
单个插入mysql //单个 根据有值就插入,无值不改动 <insert id"insertOne" keyColumn"id" keyProperty"id"parameterType"com.test.log" useGeneratedKeys"true">insert into test_mysql_tab<trim p…...
saltstack通过master下发脚本批量修改minion_id,修改为IP
通过master下发脚本批量修改minion_id,以修改为IP为例 通过cmd.script远程执行shell脚本修改minion_id,步骤如下: # 下发脚本并执行 >> salt old_minion_id cmd.script salt://modify_minion_id.sh saltenvdev #输出结果 old_minion_id:Minion di…...
【网络】TCP常考知识点详解
TCP报文结构 TCP报文由**首部(Header)和数据(Data)**两部分组成。首部包括固定部分(20字节)和可选选项(最多40字节),总长度最大为60字节。 1. 首部固定部分 源端口&…...
