MySQL周内训参照4、触发器-插入-修改-删除

编号人员题目总分数题干提交内容得分标准7程序员触发器15trigger要求: 1、用户表添加语句添加触发器,要求在添加用户信息时同时初始化用户钱包表数据,初始金额为0。 2、商品表修改语句添加触发器,要求在修改商品售价时不允许上下浮动超过10%。 3、订单表删除语句添加触发器,要求在删除订单信息时先删除订单详情表中的订单信息。提交3条sql与对应的结果截图1、要求给出触发器完整函数语句(3分/问,共9分) 2、触发器中有明确的注释(3分) 3、给出触发器测试语句(3分)8程序员存储过程20percedure基本要求: 1、添加一个用户下订单的存储过程,存储过程名称叫做【create_order_infos()】 2、要求传入创建订单所必须的参数内容,例如:用户编号、商品编号、购买数量等信息。 3、需要根据传入的信息插入【用户钱包交易日志表】、【订单表】、【订单详情表】信息,修改【用户钱包表】、【商品表】。提交完整的存储过程语句与测试语句。1、函数名称匹配(1分) 2、正确传入参数(3分) 3、写明存储过程的详细注释(5分) 4、正确添加所有日志信息(6分) 5、正确添加订单与订单详情(6分) 6、正确修改用户钱包表与商品表数值(6分) 7、给出存储过程测试语句(3分) 触发器 1、用户表添加语句添加触发器,要求在添加用户信息时同时初始化用户钱包表数据,初始金额为0。 -- 触发器名称:after_user_insert -- 功能描述:在user表插入新记录后,自动为新用户创建wallet记录 -- 触发时机:AFTER INSERT -- 触发对象:user表 -- 触发行为:FOR EACH ROW(对每一行插入操作触发) DELIMITER $$ -- 更改默认的语句分隔符为$$,这样可以在触发器内部使用分号 CREATE TRIGGER after_user_insert -- 创建一个名为after_user_insert的触发器 AFTER INSERT ON user -- 触发器在user表发生INSERT操作之后触发 FOR EACH ROW -- 触发器对每一行插入操作都执行一次 BEGIN -- 触发器开始 INSERT INTO user_wallet (user_id, balance) -- 在user_wallet表中插入一行数据 VALUES (NEW.user_id, 0.00); -- 使用NEW.user_id作为新插入行的user_id,balance为0.00 END; -- 触发器结束 $$ -- 触发器定义结束,使用新的分隔符 DELIMITER ; -- 将语句分隔符改回为分号 测试语句:

nginx的正向代理

目录 1 正向代理 1.1 使用正向代理的作用 1.2 Nginx正向代理实战 1.2.1 下载对应版本的nginx(源码编译) 1.2.2 下载 https 代理模块 1.2.3 使用https代理模块对源代码修改 1.2.4 源码安装 1.2.5 编写systemd 服务单元 1.2.6 修改nginx的主配置文件 1.2.7 定义子配置文件 1.2.8 在客户端机器上做测试 1.3 设置客户端指定代理服务器 1.3.1 Linux下 1.3.2 windows下 正向代理 正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。 反向代理 反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。 1 正向代理 1.1 使用正向代理的作用 使用正向代理有多种目的和好处,主要包括但不限于以下几点: 访问控制与过滤:组织或公司可以利用正向代理作为访问互联网的唯一出口点,这样可以集中实施访问控制策略,过滤不适当的内容,或者限制对特定网站的访问,以提高网络安全和员工生产效率。 匿名性:正向代理可以隐藏客户端的真实IP地址,使得请求看起来像是从代理服务器发起的。这对于保护用户隐私,或者绕过基于IP的地理限制访问内容(如某些网站或服务仅对特定国家开放)非常有用。 缓存与加速:代理服务器可以缓存经常访问的网页或其他网络资源,当后续请求相同内容时,可以直接从缓存中快速提供,无需再次向原始服务器请求,从而加快访问速度,减少带宽消耗。 负载均衡与故障转移:虽然通常这是反向代理的功能,但正向代理也可以用于在多个后端服务器之间分配请求,以平衡负载,或者在某个服务器不可用时重定向请求至其他可用服务器。 合规性与审计:作为所有出站流量的单一出口点,正向代理可以用于记录和监控网络活动,帮助组织满足法规遵从性和审计需求。 突破网络限制:在存在严格网络限制的环境中(如学校、公司或某些国家),正向代理可以帮助用户访问原本被屏蔽的服务或内容。 节约带宽:通过压缩数据、去除重复内容等机制,正向代理有助于减少通过网络传输的数据量,特别是在带宽有限的网络环境中尤为重要。 正向代理通过提供额外的控制层、增强隐私保护、提升性能和协助遵守政策要求,为网络管理和用户访问提供了灵活性和便利性。 1.2 Nginx正向代理实战 代理服务器 192.168.239.137/24 客户端 192.168.239.155/24 nginx正向代理的功能 由于nginx正向代理的功能指令较少,只需要进行简单的配置即可 server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 8080; location / { proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址 } } 以上的配置只能访问80 端口的网站,而不能访问https443端口的网站,现在的网站基本上都是https的要解决技能访问http80端口也能访问https443端口的网站,需要置两个SERVER节点,一个处理HTTP转发,另一个处理HTTPS转发,而客户端都通过HTTP来访问代理,通过访问代理不同的端口,来区分HTTP和HTTPS请求。

【源码】SpringBoot编程式事务使用及执行原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 5、【源码】Spring事务之传播特性的详解 6、【源码】Spring事务之事务失效及原理 前言 《Spring事务系列》的前面几篇博文讲解了通过@Transactional注解实现事务的原理,在Spring中,还有另外一种方式可以实现事务,那就是接下去要分享的编程式事务。在开始讲解编程式事务之前,先来看一个编程式事务的例子。 编程式事务示例 在使用编程式事务时,同样需要在项目中添加@EnableTransactionManagement注解,对于SpringBoot项目,默认已经添加了@EnableTransactionManagement注解。示例如下: @Service public class MemberStatisticsService { @Resource private TransactionTemplate transactionTemplate; @Resource private MemberStatisticsRepository memberStatisticsRepository; public int addStatistics(MemberStatisticsEntity entity) { // 省略其他 // 开启编程式事务 boolean rs = transactionTemplate.execute((status) -> { // 省略其他 memberStatisticsRepository.save(entity); return true; }); return rs ? 1 : 0; } } 使用编程式事务只需两步: 1)引入TransactionTemplate; 2)在需要使用事务的方法中,只需transactionTemplete.execute()方法,在方法内部的回调方法中,添加需要事务保护的数据库相关操作的业务代码即可; 针对以上的示例,可能有人会想,把其中需要事务保护的数据库操作的业务代码剥离为独立的方法,在方法中添加@Transactional注解,在原方法中调用不就可以了嘛。示例如下: @Service public class MemberStatisticsService { @Resource private TransactionTemplate transactionTemplate; @Resource private MemberStatisticsRepository memberStatisticsRepository; public int addStatistics(MemberStatisticsEntity entity) { // 省略其他 // 开启事务 boolean rs = addStatisticsBs(entity); return rs ?

Android Studio 2024.1.1(Koloa)版本 Profiler 工具变动

在 Android Studio 2024.1.1 (Koloa) 版本当中,Profiler 工具终于迎来了重大 UI 更新(太感动了,因为之前的 Profiler 工具连接得慢,收集 Trace 信息还很卡,步骤繁琐等,这次更新有了很大的优化) 首先一打开页面就有很大的区别,将 Profiler 所有的功能都整合列举在了右边(红色的是 CPU 相关的选项,绿色的是 Memory 相关的选项,黄色的 Line View 则是我们比较熟悉的实时监控图) 而老版本则是提示点击 + 号来添加设备来进行绑定 本次的改动首先对初学者比较友好,可以很直观的看到 Profiler 工具里的功能,之前则是需要点击 CPU/Memory 的实时监控图后才能看到,同时这也缩短了抓取信息的步骤 连接上设备后左边会展示出当前设备可以监控的所有进程(进程名、PID、配置状态) 老版本在连接上设备选择进程后会自动进行 CPU/Memory 的实时监控展示(就是新版本的 Line View) 连接设备后的 UI 展示新版本能够很清晰的看到能够监听的所有进程给予开发者来选择,选择后能马上在右边选择想要抓取的信息来执行 还有一个点是新版本的 Profiler 中不会自动开启 Line View 了,可能实时监控设备的 CPU/Memory 比较吃电脑性能,之前几个版本一旦抓取的信息堆积了之后 Android Studio 就会变得非常卡顿,需要重新启动才能解决,这个版本优化了之后 Android Stuido 使用 Profiler 卡顿问题就缓解很多了 在对 Task 的管理上也做了很大的优化 老版本: 在老版本上可以收集多个 Task,点击不同的来进行分别查看,还可以导出 Trace 文件到本地、读取本地 Trace 文件。但是我一直以来都很奇怪一个点,为什么不能单独删除 Task,所以每次删除都要把整个 Profiler 关掉重新打开才行,在新版本,终于盼来了....

怎么把网页上的接口信息导入postman

第一步 打开f12,右键选中需要的接口。选择copy-copy as cURL 第二步 打开postman,选择"Raw Text", 把刚才复制的curl粘贴到空白位置,点击Continue - 最后的效果。导入的接口自带cookie,不用再输入cookie,调用很方便

【C++】认识STL

【C++】认识STL STL的概念STL的版本STL的六大组件STL的三个境界STL的缺陷 STL的概念 SLT(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个保罗数据结构与算法的软件框架。 STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本–所有STL实现版本的始祖 P.J.版本 由P. J. Plauger开发,继承自HP版本,被Windows Visual C++采用,不能公开或修改,缺陷:可读性比较低,符号命名比较怪异 RW版本 由Rouge Wage公司开发,继承自HP版本,被C+ + Builder 采用,不能公开或修改,可读性一般。 SGI版本 由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版 本。被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。 STL的六大组件 STL的三个境界 第一境界:熟用STL第二境界:了解泛型技术的内涵与STL的学理乃至实作第三境界:扩充STL 学习书籍推荐:《STL源码剖析》 总结:学习STL的三个境界:能用,明理,能扩展。 STL的缺陷 1.STL库的更新太慢。 2.STL没有支持线程安全,并发环境下需要自己加锁,且锁的力度是比较大的 3.STL极度的追求效率,导致内部比较复杂。 4.STL的使用会有代码膨胀的问题。

【面试 - 页面优化举例】页面跳转卡顿问题解决 - 页面跳转速度优化

目录 为何要优化如何优化优化1 - 懒加载优化2 - el-tree 子节点默认不展开 为何要优化 页面A跳转到也页面B时,页面出现卡顿情况: 【问题】页面A → 页面B时,页面B进入到了 created 钩子后过了六七秒才进入到 mounted 钩子;【分析经过】很明显是 页面渲染速度太慢 导致页面卡顿;【原因】一系列排查后,发现是 el-tree 部门树 数据过多 导致的页面渲染过慢。 如何优化 优化1 - 懒加载 el-tree 数据懒加载,详见 懒加载自定义叶子节点 正常使用 el-tree 组件时使用懒加载没问题遇到一个很麻烦的问题: 我们的部门树用的公司以 el-tree 为基础封装的部门树组件(会先把部门树数据传到 EleFormTree 组件内,且部门树数据必传),因为还是得传所有的部门树数据,使用懒加载是没有实际效果的,重新写组件有点浪费时间;偶然间发现 页面B 中部门树是 默认全部展开,如果 不默认展开就不会渲染未展开节点,因此有了 优化2 优化2 - el-tree 子节点默认不展开 el-tree 组件中属性 default-expand-all 设置为 false 默认不展开所有子节点 这样就可以避免数据过多(所有子节点都渲染),导致渲染过慢问题。子节点展开前/展开后dom展示

OpenCV--图像的基本变换

图像的基本变换 代码和笔记 代码和笔记 import cv2 import numpy as np """ 图像的基本变换 """ cat = cv2.imread('./img/cat.jpeg') """ 缩放 """ # dsize:(499, 360)这里的宽高和numpy的行列是反过来的 interpolation插值算法 new_cat = cv2.resize(cat, (499, 360), interpolation=cv2.INTER_NEAREST) # 按xy轴的比例进行缩放 new_cat1 = cv2.resize(cat, dsize=None, fx=1.5, fy=0.5, interpolation=cv2.INTER_LINEAR) cv2.imshow('new_cat', new_cat) cv2.imshow('new_cat1', new_cat1) """ 翻转 """ # 0表示上下翻转,>0表示左右 <0左右上下 new_cat2 = cv2.flip(cat, 0) cv2.imshow('new_cat2', new_cat2) """ 旋转 """ # ROTATE_90_CLOCKWISE 90度顺时针 ROTATE_180 180度 ROTATE_90_COUNTERCLOCKWISE 逆时针90度 new_cat3 = cv2.rotate(cat, rotateCode=cv2.ROTATE_90_COUNTERCLOCKWISE) cv2.imshow('new_cat3', new_cat3) "

全面对比与选择指南:Milvus、PGVector、Zilliz及其他向量数据库

本文全面探讨了Milvus、PGVector、Zilliz等向量数据库的特性、性能、应用场景及选型建议,通过详细的对比分析,帮助开发者和架构师根据具体需求选择最合适的向量数据库解决方案。 文章目录 向量数据库概述向量数据库的关键功能向量数据库的扩展和选择向量数据库与传统数据库的区别 不同类型的向量数据库纯矢量数据库全文检索数据库开源矢量库支持矢量的NoSQL数据库支持矢量的SQL数据库 主要向量数据库对比Milvus简介与优势PGVector简介与应用Zilliz简介与服务Elastic Cloud与Zilliz Cloud的性能对比Qdrant Cloud与Zilliz Cloud的性能对比性能与可扩展性对比性能基准测试结果可扩展性分析云原生支持 功能与特性对比向量数据库的必备特性多租户和数据隔离完整的API套件直观的用户界面和控制台 安装与配置安装Docker和PostgreSQL安装Docker安装PostgreSQL 创建数据库和表创建数据库创建表 安装pgvector插件安装插件 Milvus的安装与快速启动安装Milvus快速启动 Zilliz Cloud的部署与使用部署Zilliz Cloud使用Zilliz Cloud 应用场景与案例分析图像检索中的应用技术实现 AI工具集成中的角色应用案例 RAG系统的需求应用案例 如何选择向量数据库入门或demo的选择产品开发的选择现有系统上使用矢量功能的选择架构建议结论与建议根据需求选择合适的数据库未来发展趋势与技术更新选择矢量数据库的建议 向量数据库概述 向量数据库的关键功能 向量数据库是专门设计来处理和存储高维向量数据的数据库系统。它们的关键功能包括: 高效的相似性搜索:向量数据库能够快速地在大量高维向量中找到最相似的向量,这对于图像识别、语音识别和推荐系统等应用至关重要。支持多种索引类型:如IVF_FLAT、IVF_SQ8、HNSW等,这些索引类型可以根据不同的应用场景和性能需求进行选择。动态扩展性:随着数据量的增加,向量数据库能够通过增加节点或资源来扩展其处理能力,确保系统的性能不受影响。支持复杂的查询和过滤:除了基本的相似性搜索,向量数据库还支持复杂的查询操作,如混合查询和标量过滤,这使得它们能够处理更复杂的业务逻辑。 向量数据库的扩展和选择 选择和扩展向量数据库时,需要考虑以下几个关键因素: 数据规模和查询复杂度:根据数据量的大小和查询的复杂度选择合适的向量数据库。例如,对于大规模数据集,可能需要一个支持分布式架构的数据库。性能需求:不同的应用场景对性能的要求不同,如实时搜索可能需要更高的查询速度。成本效益:考虑数据库的运行成本,包括硬件资源、维护费用和许可费用。社区和支持:选择一个有活跃社区和良好支持的数据库可以确保长期的技术支持和问题解决。 向量数据库与传统数据库的区别 向量数据库与传统数据库(如关系型数据库)在设计和功能上有显著的区别: 数据模型:传统数据库通常基于表格模型,而向量数据库处理的是高维向量数据。查询机制:传统数据库主要依赖于精确的SQL查询,而向量数据库则侧重于相似性搜索和近似查询。索引结构:向量数据库使用专门的索引结构(如倒排索引、图索引等)来优化相似性搜索,而传统数据库通常使用B树或哈希索引。扩展性:向量数据库通常设计为可水平扩展,能够处理大规模数据集,而传统数据库可能在处理大数据时遇到性能瓶颈。 通过这些对比,我们可以看到向量数据库在处理特定类型的数据和查询时具有独特的优势,特别是在需要高效处理大量高维数据的应用中。 不同类型的向量数据库 纯矢量数据库 纯矢量数据库是专门设计用于存储和处理矢量数据的数据库系统。这类数据库通常提供高效的矢量索引和搜索功能,适用于需要快速进行相似性搜索的场景。例如,Milvus是一个开源的纯矢量数据库,它支持多种矢量索引类型,如IVF、HNSW等,可以处理大规模的矢量数据集,并提供实时搜索能力。纯矢量数据库的优势在于其专为矢量数据优化,能够提供高性能的查询和处理能力。 全文检索数据库 全文检索数据库虽然主要用于文本数据的搜索,但许多现代的全文检索系统也支持矢量搜索功能。例如,Elasticsearch通过插件如Elasticsearch-HNSW可以实现矢量搜索。这类数据库的优势在于它们通常具有强大的文本处理能力,同时也能处理向量数据,适合需要结合文本和向量搜索的应用场景。 开源矢量库 开源矢量库是指那些提供向量处理功能的开放源代码库。这些库通常不提供完整的数据库管理系统功能,但提供了构建向量数据库所需的核心功能。例如,Faiss是Facebook开发的一个开源库,它提供了高效的矢量索引和搜索算法,可以集成到其他系统中以增强其向量处理能力。 支持矢量的NoSQL数据库 NoSQL数据库如MongoDB和Cassandra等,也开始支持矢量数据类型和相关的查询功能。这些数据库通常具有良好的扩展性和灵活的数据模型,适合处理非结构化数据。例如,MongoDB通过其MLAB插件支持矢量索引,可以在保持NoSQL数据库的灵活性的同时,处理向量数据。 支持矢量的SQL数据库 支持矢量的SQL数据库是指那些传统的关系型数据库,它们通过插件或扩展来支持矢量数据类型和查询。例如,PostgreSQL通过pgvector插件可以实现矢量相似度查询。这类数据库的优势在于它们通常具有成熟的数据管理功能和广泛的应用基础,适合需要在现有关系型数据库基础上增加向量处理能力的场景。 通过上述分类,我们可以看到向量数据库的多样性,不同的数据库类型适合不同的应用场景和需求。选择合适的向量数据库时,需要考虑数据量、查询性能、扩展性、易用性以及与现有系统的兼容性等因素。 主要向量数据库对比 Milvus简介与优势 Milvus 是一个开源的向量数据库,专为处理大规模向量相似性搜索而设计。它支持多种索引类型,如IVF、HNSW等,这些索引类型可以根据不同的应用场景和性能需求进行选择。Milvus的核心优势在于其高性能和可扩展性,能够处理数十亿甚至更多的向量数据。此外,Milvus提供了丰富的API和SDK,支持Python、Java等多种编程语言,使得开发者可以轻松地集成和使用。 PGVector简介与应用 PGVector 是一个PostgreSQL扩展,它允许在PostgreSQL数据库中存储、查询和索引向量数据。PGVector支持多种向量索引类型,如HNSW和IVFFlat,这些索引可以显著提高向量搜索的效率。PGVector的应用场景包括但不限于图像识别、语音识别和推荐系统等。由于其与PostgreSQL的紧密集成,PGVector非常适合那些已经使用PostgreSQL作为主要数据库系统的项目,可以无缝地扩展其功能以支持向量数据处理。 Zilliz简介与服务 Zilliz 提供了一个完全托管的向量数据库服务,名为Zilliz Cloud。Zilliz Cloud旨在提供高速、大规模和高性能的向量数据处理能力。它支持多种向量索引和查询功能,并且提供了易于使用的管理界面和API。Zilliz Cloud的优势在于其云原生架构,可以轻松地扩展以适应不断增长的数据量和查询需求。此外,Zilliz Cloud还提供了灵活的定价选项,适合各种规模的项目和团队。 Elastic Cloud与Zilliz Cloud的性能对比 Elastic Cloud 是一个流行的云服务,它基于Elasticsearch,提供了强大的搜索和分析功能。虽然Elasticsearch主要用于文本搜索,但它也支持向量搜索功能。与Zilliz Cloud相比,Elastic Cloud在处理文本数据方面表现出色,但在向量搜索方面可能不如Zilliz Cloud专业。Zilliz Cloud专为向量数据设计,提供了优化的索引和查询机制,适合需要高性能向量搜索的应用。

IRIS论文阅读笔记

这是ICLR2023一篇world model的论文,提出了一个称为IRIS的world model方法模型仍然是分为两部分,一部分是模拟世界的world model,包括预测下一帧的观测,预测当前reward,预测是否terminate的三个输出;第二部分是强化学习的模型,输出policy和value,可以用于AC算法。模型的训练是重复以下三步: 利用当前的policy模型,去和真实环境交互,获得一组观测序列。利用上述观测数据,train world model利用world model,train RL model world model world model 包含几部分,首先是一个VQ-VAE (下图的E和D)用于从图像观测中提取token,然后是一个GPT (下图的G)用于预测下一帧和当前的reward和termination。 可以看到,每个时刻,G的输入不仅包含当前时刻的tokens和action,还包含之前的tokens和actions。也就是说,假设每个image最终由16个token表征,action由一个token表征,则t=0时transformer的输入是17个token,t=1时transformer的输入就是34个token了。注意,train world model的时候,是在已经采样好的数据上train的,也就是说此时已经有序列了,不需要交互什么的。我已经采样好一个17n的序列了,只需要对这个序列仅需mask prediction即可,即根据17t的输入,预测17*(t+1)的输出即可,并且使用gt而非预测结果作为下一个t的输入。另一个需要注意的点是,用的是GPT的框架,即transformer decoder结构,所以是token是一个个预测的,也就是说,预测t=1时刻的token并不是一次性全预测出来的,而是先用t=0时刻的17个token作为输入,预测t=1时刻的第一个token,然后把这18个token作为输入,预测第二个token,以此类推。

Stable Diffusion初体验——基于机器学习通过神经网络的强大AI平台

文章目录 前言最新热门活动!!平台介绍 一.创建应用 Stable Diffusion WebUI初始化上传模型,VAE,lora 介绍sd模型,vae,lora模型进入应用文生图工作区调参区图生图 结语小程序活动——6.20火热上线🔥!! 前言 在这个信息爆炸的时代,AI技术正以前所未有的速度发展着。图生图、AI换脸、图生视频等技术的涌入,极大地改变了我们的工作与生活,带来了更多的挑战与机遇。 例如我们可以使用AI去生成具有质感的人物图像 也可以使用实现视频,图片的换脸效果 图生视频也可以轻松实现 图生视频 但是这样的效果与实现需要用到昂贵的显卡,CPU或要占用额外的内存,这里给大家推荐一款非常实用的平台,提供良好的一键开机镜像环境,实现智能算力的灵活、便捷使用; 并给出了新用户提供了免费体验无限图片次数的额度 —— 算力资源,触手可及! 最新热门活动!! 🔥特惠风暴来袭!只需9.9元/周,尽享顶级AI算力!🔥 平台介绍 🎉 海量卡源,开机成功率遥遥领先 🎉 🤖 应用市场,无需部署,开箱即用 🤖 🌟 限时0元体验,一步迈向算力自由 🌟 一.创建应用 我们选择用户界面到应用市场,选择想要的应用 Stable Diffusion WebUI Stable Diffusion WebUl是基于网页的用户界面,它使得用户可以通过浏览器与Stable Diffusion模型进行交互,生成图像。 初始化 Stable Diffusion是世界领先的开源人工智能。我们在成像、语言、代码和音频方面以最少的资源需求提供突破性的、开放访问的AI模型。 创建应用 到个人中心选择我的应用开机(开机重启并不计算费用) 上传模型,VAE,lora 4. 输入用户名密码 点击至这个文件夹找到对应文件夹 进行上传等待即可 介绍sd模型,vae,lora模型 SD模型(Stable Diffusion) Stable Diffusion 是一个深度学习模型,专门用于生成高质量的图像。它主要用于文本到图像的生成,即用户输入一段文本描述,模型就能生成与之匹配的图像。Stable Diffusion 模型基于深度学习中的扩散模型,这种模型能够在图像生成的过程中保持较高的稳定性和图像质量。VAE(变分自编码器) VAE(Variational Autoencoder)是一种深度学习模型,它属于自编码器的一种。自编码器的主要目的是将输入数据压缩成编码(向量形式),然后再用这些编码重构出原始数据。VAE在自编码器的基础上加入了一个重要的概念——变分推断。VAE通过最大化边际对数似然的下界来进行训练,这使得它能够生成新的数据实例,而不仅仅是重构输入数据。VAE广泛应用于生成模型、数据降维和异常检测等领域。 3.LoRA模型 LoRA(Low-Rank Adaptation)模型是一种模型微调方法,它使得大型预训练模型能够快速适应新的任务或领域。LoRA通过引入一组可训练的、低秩的参数来修改预训练模型中的权重,从而减少了需要微调的参数数量。这种方法大大减少了微调所需的计算资源和时间,同时还能保持模型在新任务上的性能。LoRA在自然语言处理和计算机视觉等领域得到了广泛应用。 SD模型是核心,VAE是渲染效果,lora模型是加强细节 进入应用 我们可以看到缩放之后的界面是这样的 我们来大致的介绍一下 大致地,我们将它分成了模型选择区,功能工作区,参数调节区,以及控制器和出图区 我们可以重点来看一下工作区的内容 文生图 文生图是指通过输入文本描述,让Stable Diffusion模型生成与之匹配的图像。这个过程可能会涉及到模型的推理和图像的生成。用户可以通过在工作区输入文本,然后在调参区调整参数,来生成符合自己需求的图像。

人工智能抢走了他们的工作。现在他们得到报酬,让它听起来像人类

人工智能抢走了他们的工作。现在他们得到报酬,让它听起来像人类 如果你担心人工智能会如何影响你的工作,那么广告文案的世界或许能让你窥见未来。 作家本杰明·米勒(化名)在2023年初非常红火。他领导了一个由60多名作家和编辑组成的团队,发表博客文章和文章,宣传一家科技公司,该公司打包并转售从房地产到二手车的各种数据。米勒说:“这是一份非常吸引人的工作。”他有机会发挥自己的创造力,并与不同领域的专家合作。但是有一天,米勒的经理告诉他一个新项目。“他们想用人工智能来降低成本,”他说。(米勒签署了一份保密协议,并要求BBC隐瞒他和公司的名字。) 一个月后,公司引进了自动化系统。米勒的经理会将一篇文章的标题输入在线表格,人工智能模型会根据标题生成大纲,米勒会在他的电脑上收到提醒。他的作家们不是自己想点子,而是围绕这些提纲写文章,米勒会在故事发表前做最后的编辑。米勒只有几个月的时间来适应,然后他就得到了第二层自动化的消息。此后,ChatGPT将完整地编写这些文章,他的大部分团队成员都被解雇了。剩下的几个人面临着一个更缺乏创造性的任务:编辑ChatGPT不合格的文本,使其听起来更人性化。 到2024年,公司解雇了米勒团队的其他成员,他独自一人。“突然之间,我只是在做每个人的工作,”米勒说。每天,他都会打开人工智能编写的文件,修复机器人的公式化错误,大量完成过去需要数十人完成的工作。 在许多行业,人工智能正被用来完成曾经是人类思维专属领域的工作 “大多数情况下,这只是为了清理一些东西,让写作听起来不那么尴尬,删去奇怪的正式或过于热情的语言,”米勒说。“这比我和人类作家做的编辑更多,但它总是完全相同的编辑。真正的问题是它太重复了,太无聊了。我开始觉得我就是那个机器人。” 米勒的经历反映了一个更广泛的转变。在许多行业,人工智能正被用来完成曾经是人类思维专属领域的工作。人工智能通常比人便宜,但早期采用者很快就会意识到,人工智能并不总是能达到同样的水平。现在,像米勒这样的人发现,他们被要求与同样的机器人合作,这些机器人正在窃取他们的工作,给算法一点人性——一支隐藏的军队,让人工智能看起来比实际上更好。 如果人工智能变得更加有效,这将是一个暂时的解决方案。如果事实并非如此,米勒的故事可能预示着其他行业将会发生什么。 人工智能会抢走你的工作吗?这很难说。我们正处于一个令人不安的十字路口,一些专家警告说,超级智能机器人将很快取代大部分人类工作,而另一些人则认为,这项技术可能永远不会达到这一点。还有一些人认为,我们正在走向人工智能和人类合作的未来,而不是竞争的未来。 但在规模小得多的情况下,一些工人已经面临痛苦的后果。如果有一件事是由生成式人工智能驱动的大型语言模型可以做的,那就是把单词和段落串在一起,让一些作家站在第一线。 担心工作机会被人工智能写作工具抢走,是去年美国编剧罢工的主要原因之一。随着能够从零开始生成图像、音频和视频的人工智能工具的到来,其他创意产业也面临着类似的担忧。 我们加入了“人情味”,但这通常需要对一篇文章进行深入的、有发展意义的编辑——卡特丽娜·考特 广告文案——为企业撰写营销材料和其他内容的人——已经感受到这种影响。在文案行业的某些领域,人工智能是一件好事。它可以是一个有用的工具,加快工作速度,提高创造力。但其他撰稿人,尤其是那些刚入行不久的撰稿人表示,人工智能正让他们更难找到工作。 但一些人也注意到,一种报酬低得多的新型零工正在兴起:修理机器人拙劣的文字。 美国肯塔基州列克星敦市的文案撰稿人卡特里娜·考特(katrina Cowart)从事人工智能文本的编辑工作,她说:“我们正在添加人情味,但这通常需要对一篇文章进行深入的、有发展意义的编辑。”“语法和用词听起来很奇怪。你总是删去像“因此”和“尽管如此”这样不适合休闲写作的华丽词汇。另外,你必须对整个事情进行事实核查,因为人工智能只是胡编乱造,这需要很长时间,因为它不仅仅是伟大的想法。人工智能会在你永远不会注意到的随口台词中产生这些轻率的小东西。” 考特说,人工智能人性化往往比从头开始写一篇文章需要更长的时间,但报酬更低。“在求职平台上,你可以找到这样的工作,通常一个字最多能赚10美分(0.08英镑)。但那是在你写作的时候,这被认为是一份编辑工作,所以通常你一个字只能得到1到5美分(0.008- 0.04英镑)。” 考特说:“这是一项乏味、可怕的工作,而且他们几乎没有给你报酬。” 其他行业也看到了类似的例子,即低薪人员悄悄地为机器提供动力,从介入帮助自动订购系统,到首先为用于训练人工智能视觉系统的图像贴上标签。 丽贝卡·杜加斯(Rebecca Dugas)是一位令人难以置信的合作伙伴 但对于文案界的一些人来说,人工智能的到来是好事还是坏事,取决于人们如何对待它,以及人们在职业生涯中走了多远。一些作家说,在创作过程中使用这些工具甚至可以改善他们的作品。 美国作家和艺术家协会(awi)是一个为自由作家提供培训和资源的组织,为其成员举办了各种关于人工智能的课程。AWAI总裁丽贝卡·马特(Rebecca Matter)表示,人工智能课程目前是该学院最受欢迎的课程。“这是一个不可思议的工具,”马特说。“对于那些以文案写作为职业的人来说,风险不是人工智能抢走了他们的工作,而是他们必须适应。这可能会让人不舒服,但我认为这是一个巨大的机会。” 马特说,对她认识的大多数作家来说,向人工智能世界的过渡是顺利的。事实上,它已经成为文案写作过程中一个固有的部分,许多作家现在在他们的专业网站上添加了个人“人工智能政策”,以解释他们如何使用这项技术。 丽贝卡·杜加斯(Rebecca Dugas)是一名有9年工作经验的文案撰稿人,她说人工智能是“天赐之物”,让她能在很短的时间内写出同样高质量的作品。 “只要我的客户对人工智能感到满意,我就会使用它,”她说。“无论是头脑风暴、市场调研,还是在我绞尽脑汁时修改段落,它都是一个令人难以置信的合作伙伴。” 但杜加斯明白,客户可能对这项技术有所保留。她自己的人工智能政策解释说,杜加斯很乐意为那些喜欢人工智能的人放弃人工智能——但你可以期待付出更多。额外的时间和精力意味着她的无人工智能项目需要付出更高的代价。 随着人工智能的发展,杜加斯预计一些企业将转向ChatGPT和其他工具来满足他们的写作需求,而不是雇佣人类。她表示:“但我认为,即便是现在,企业也开始意识到,如果你不懂文案,就无法判断人工智能产品的有效性。”根据杜加斯的说法,这意味着有才华的知名作家总是会有高薪的工作。 米勒将人工智能人性化的时代戛然而止 但处于职业光谱低端的文案可能就没那么幸运了。今天,许多处于那个位置的人发现自己处于一系列明显的现代矛盾之中。 大量的文案工作来自网站所有者,他们想要的文章将从谷歌产生更多的流量。然而,谷歌在去年发布了一系列戏剧性的声明,表示将努力从搜索结果中删除“无益”的内容。这引发了人们的担忧,即这家科技巨头可能会惩罚托管人工智能生成内容的网站。谷歌坚持认为,如果内容质量高,人工智能写作是没问题的,但这些保证并没有打消人们的担忧。 因此,在文案界的某些地方,通过人工智能检测软件来运行文本已经成为一种常见的做法。在过去的一年里,一波作家甚至说他们因为人工智能探测器的错误指控而失去了工作。 考特表示,许多拥有人工智能检测软件的自由写作平台同时也在雇人编辑聊天机器人生成的内容。这意味着,在文案生态系统的某些角落,几乎所有事情都围绕着避免人工智能出现的努力。 Cowart说道:“他们出售AI内容并付钱给你去修复它,同时他们还会给你发送电子邮件,告诉你如何像人类一样写作,这样你就不会触发他们的AI检测器。”“这太侮辱人了。”更糟糕的是,检测器会定期更新,以跟上制造人工智能聊天机器人的公司的持续变化,这意味着关于什么可能会被标记为人工智能的规则在不断变化。“这很令人沮丧,因为用英语说同一件事有一百万种方法,但哪一种更人性化?”我不喜欢猜测,”她说。 米勒将人工智能人性化的时代戛然而止。在重复了几个月的编辑工作后,他接到了一个意想不到的会议。2024年4月5日,就在他的家乡纽约发生历史性地震的同一天,他被解雇了。该公司认为,米勒只是又一个不必要的人为干预。 米勒说:“我或多或少被自动化取代了工作。 幸运的是,没过多久,米勒就发现了一个新的机会。他在一家名为Undetectable AI的科技公司找到了一份工作,该公司开发的软件使人工智能的文字更难识别。换句话说,米勒正在帮助一家使用人工智能的公司完成他在人工智能取代他的工作后被迫做的工作。 Undetectable AI首席执行官巴尔斯•尤哈斯(Bars Juhasz)表示,像他的公司生产的这些工具肯定会对劳动力市场产生一些负面影响,但他对未来的工作持乐观态度。“当汽车在马和马车的时代首次推出时,人们的反应是这是世界末日。但社会总是会适应的,”尤哈斯说。“我认为我们将看到很多工作被取代,自由职业者将受到最严重的打击。我很同情他们。但这些靠让人工智能人性化而获得报酬的人是绝佳的机会主义者。当然,这不是一份好工作,但在我们重新定义生产力概念的时刻,他们有效地认识到了一个新的位置。能学会使用这项技术的人就没问题了。” 米勒并不怀念他在人工智能人性化矿井里的时光。他说:“我制造了大量充斥互联网并破坏互联网的垃圾。”“在我离开的时候,甚至没有人读过这些东西,因为它们只是垃圾。”米勒认为,最终,该公司只会撤下他撰写的有关人工智能的文章。“就像什么都没发生过一样。”

安装stable diffusion,加载模型报错:AttributeError: ‘NoneType‘ object has no attribute ‘lowvram‘ 的解决办法

Windows中安装stable diffusion流程(使用原始方法、非整合包快捷安装): 实验机器配置: OS:Win10 64bit;CPU:i5 4.1GHz 12核;内存32G;显卡NVIDIA Quadro P1000 4G显存 参考文档: 如何搭建StableDiffusion环境 | 音视跳动科技 1. 安装N卡驱动: 官方驱动 | NVIDIA 2. 安装Git Git - Downloading Package 3. 安装python https://mirrors.huaweicloud.com/python/3.10.8/python-3.10.8-amd64.exe (安装时勾选写入环境变量,不然需要安装后手工把安装目录写入path环境变量) 4. 克隆Stable Diffusion+WebUI : cmd中进入你想克隆的位置: cd D: \\此处亦可输入你想要克隆的地址,选剩余空间大于50~100G的硬盘分区,尽量不要装C盘 然后使用Git克隆AUTOMATIC1111的stable-diffusion-webui git clone ​​​​​​​https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 5. cmd中进入stable-diffusion-webui目录,运行:webui-user.bat 6. 解决报错问题 1)在实验window主机安装时,下载完模块,报错:Couldn't install torch。百度看到要设置虚拟内存8G以上,于是把虚拟内存设置到了10000~20000(Mb)。 2)然后再跑 webui-user.bat,torch装上了,然后又报错: RuntimeError: Couldn't install clip:到目录modules中打开launch_utils.py,把 clip_package = os.environ.get('CLIP_PACKAGE', "https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")中​​​​​​​https://github.com​​​​​​​/改为https://ghproxy.com/https://github.com/保存再跑webui-user.bat试试。。试了没用,但改回来再跑webui-user.bat就把clip装上了,具体原因不明。 下面的方法也试过了,好像也有效果 3)可以在浏览器打开webui了,但是加载模型报错:AttributeError: 'NoneType' object has no attribute 'lowvram' * webui-user.bat文件中找到 set COMMANDLINE_ARGS= 后增加 --lowvram --precision full --no-half --skip-torch-cuda-test

OpenCV--图像的运算

图像的运算 代码和笔记 代码和笔记 import cv2 import numpy as np """ 图像的运算 """ # 读取图片 cat1 = cv2.imread('./img/cat.jpeg') cat2 = cv2.imread('./img/cat.jpeg') """ 加减乘除 """ # 加法(有点杂交的感觉) 图片长宽和通道数相同 # 如果不一样使用ndarray的切片方法如cat[0:360,:499] # 加法规则 两个图对应位置的元素相加,如果超过255,则变为255 # 也可以和数字相加, 超出255则 %256 new_img = cv2.add(cat1, cat2) cv2.imshow('new_img', new_img) # 减法 结果小于0,全部为0,变黑 new_img1 = cv2.subtract(cat1, cat2) cv2.imshow('new_img1', new_img1) # 乘法multipy 除divide类似 """ 图像融合(图片做线性运算)0.3和0.7是两张需要融合的图片各自的权重,-100是偏置(明暗程度) """ new_img2 = cv2.addWeighted(cat1, 0.3, cat2, 0.7, -100) cv2.imshow('new_img2', new_img2) """ 与&(bitwise_and) 异或^(bitwise_) 非~(bitwise_not)(0-255,即0反过来为255,也就是相当于255减去原来的值) 运算,OpenCV中对应位置对应进行运算 "

如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法

🛠️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法 摘要: 本文将带领大家深入学习如何解决 Xshell 使用 SSH 连接 Linux 服务器时报错“找不到匹配的 host key 算法”的问题。通过详细的操作步骤和代码案例,我们将确保无论是小白还是大佬都能轻松解决这一问题。本教程涵盖了多种相关 SEO 词条,确保内容易于被搜索引擎收录。 原创作者: 猫头虎 博主 猫头虎 的技术博客 全网搜索关键词: 猫头虎 了解更多 猫头虎 的编程故事! 作者微信号: Libin9iOak 作者公众号: 猫头虎技术团队 更新日期: 2024年6月16日 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!《100天精通Golang(基础入门篇)》 — 踏入Go语言世界的第一步!《100天精通Go语言(精品VIP版)》 — 踏入Go语言世界的第二步! 领域矩阵: 🌐 猫头虎技术领域矩阵: 深入探索各技术领域,发现知识的交汇点。了解更多,请访问: 猫头虎技术矩阵新矩阵备用链接 文章目录 🛠️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法📋 引言📌 正文🔍 什么是 Host Key 算法?🛠️ 解决方法**方案一:更新 Xshell 到最新版本****方案二:使用 MobaXterm****方案三:修改配置文件****步骤一:查看服务器支持的 Host Key 算法****步骤二:修改 SSH 配置文件****步骤三:更新 Xshell 配置** 📌 代码案例**服务器端配置****客户端配置** ❓ QA 环节🔍 小结 📚 参考资料📝 表格总结本文核心知识点🔮 未来展望 📋 引言 大家好,我是猫头虎,今天我们来讨论一个在使用 Xshell 连接 Linux 服务器时常见的报错问题——找不到匹配的 host key 算法。这个问题可能会让许多新手感到困惑,但其实解决方法非常简单。接下来,我将带领大家一步一步解决这个问题。

Eureka 概述与 Eureka Server 配置

在微服务架构中,服务注册与发现是一个至关重要的部分。Spring Cloud Netflix 提供了 Eureka 组件来解决这一问题。Eureka 是一个服务注册和发现组件,它允许微服务在启动时向 Eureka 注册,并能从中获取其他微服务的位置,从而实现客户端的负载均衡和故障转移。在这篇文章中,我们将详细介绍 Eureka 的基本概念以及如何配置 Eureka Server。 一、Eureka 概述 Eureka 是 Netflix 开源的一个服务注册与发现组件,分为 Eureka Server 和 Eureka Client 两部分。Eureka Server 作为服务注册中心,负责维护所有注册的服务实例信息;Eureka Client 是注册的服务实例,负责向 Eureka Server 注册和获取其他服务实例的信息。 1. 服务注册 服务实例在启动时会向 Eureka Server 注册自己的信息(如 IP 地址、端口等),并定期发送心跳以维持注册信息的有效性。如果 Eureka Server 在一定时间内未收到某个服务实例的心跳,则会将其从注册表中剔除。 2. 服务发现 微服务可以通过 Eureka 获取其他服务的位置,实现客户端的负载均衡和故障转移。通过 Eureka Client,微服务能够动态地获取服务实例列表,从而在调用其他服务时实现负载均衡。 二、Eureka Server 配置 在开始配置 Eureka Server 之前,需要确保已添加必要的依赖。下面是一个典型的 Spring Boot 项目配置文件 pom.xml,包括 Eureka Server 相关的依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.

小白的Python+Anaconda+vscode安装使用教程(win11系统手把手教学)(1)

python下载安装 python下载安装过程 下载地址:https://www.python.org/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/33bd022a0d104a22b9e8caf7abb4e294.png 我这里选择了3.7.9版本 选中刚才下载的.exe文件,右键-打卡 上一个页面点击customiz installation后界面跳转 取消py launcher的勾选 勾选install for all users后自动自动勾选precomplie standard symbols 建议修改browse路径到非c盘,建议勿使用中文路径 选好后点击install进行安装 安装成功 检查python是否安装成功 win+r键输入cmd 出现以下内容即安装成功 Anaconda安装 下载地址https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 建议存储到非C盘 双击刚才下载的.exe文件,next 点击I Agree 选All User,然后Next 建议更改路径到非c盘,建议勿使用中文路径 第一个不勾选,否则后期conda会出问题 第二个勾选 然后install 正在安装 提示安装成功,点击next 提示安装vscode,先选择skip跳过 两个learn,都取消勾选 点击finish结束 配置Anaconda (基于win11系统)开始中搜环境变量-打开编辑系统环境变量 在系统变量中找到path,选中path,点击编辑 点击新建 对照你的安装路径配置以下环境变量: 到此,我们已经完成了anaconda的安装配置。下面检查是否安装成功 检查Anaconda是否安装成功 cmd中输入python,查看是否有python环境 在cmd中输入conda --version,查看是否有conda环境(检验安装成功的标志) tips:记得要在cmd中退出python 在cmd中输入conda info,查看是否有(检验安装成功的标志) 如果没有或提示conda不是内部或外部命令,则意味着你的anaconda没有把环境变量配置好。 增加Anaconda中国镜像 依次在cmd中输入以下指令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes 最后一条指令是:设置搜索时显示通道地址

【数据结构】线性表之《顺序表》超详细实现

顺序表 一.数据结构1.逻辑结构2.物理结构 二.顺序表的分类1.静态顺序表2.动态顺序表 三.顺序表的实现1.创建顺序表2.初始化顺序表3.判断是否扩容4.打印顺序表5.插入操作1.头插2.尾插3.按照下标插入 6.删除操作1.头删2.尾删3.按照下标删除 7.查找数据8.修改数据9.清空顺序表10.销毁顺序表 四.模块化源代码1.SeqList.h2.SeqList.c3.test.c 五.顺序表必做OJ题 前言:相信大家在学完C语言后,对于指针,结构体以及动态内存管理有了一定的见解,那么数据结构像是检验真理的唯一标椎,它考察了你掌握这三种语法的程度,如果掌握的不是很理想的友友们,建议看看鄙人主页总结的文章,好啦,数据结构之旅就正式开始啦。 一.数据结构 数据结构:计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构。 1.逻辑结构 逻辑结构:数据对象中数据元素之间的相互关系。 逻辑结构分为:集合结构,线性结构,树形结构和图形结构。 2.物理结构 物理结构:数据的逻辑结构在计算机中的存储形式。 物理结构分为:顺序存储结构和链式存储结构。 二.顺序表的分类 顺序表实际属于线性表这个大家族,那么什么是线性表呢? 线性表:是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 1.静态顺序表 #define MAXSIZE 100 //静态顺序表的容量 typedef int SLDataType; //增强程序的可维护性 typedef struct SeqList { SLDataType arr[MAXSIZE];//定长数组 int size; //有效的数据个数 }SeqList; 也许有人会问:这个静态顺序表说的这么神秘,本质上不就是一个数组吗? 答:没错,顺序表的低层就是数组,逻辑结构与物理结构都是连续的。不过顺序表对数组进行了封装,提供了大量常用的接口(所谓接口就是调用函数),方便完成数据进行增,删,查,改等一系列的操作。 静态顺序表的缺点:程序一但运行,数组的大小就确定了,不能被修改。数组大小给小了,空间就不够用;数组大小给大了,空间就白白的浪费掉了; 为了方便对静态顺序表进行扩容,于是,动态顺序表便应运而生。 2.动态顺序表 typedef int SLDataType;//增强程序的可维护性 typedef struct SeqList { SLDataType* arr; //动态的,可以扩容 int size; //有效的数据个数 int capacity; //容量 }SL; 动态顺序表:通过堆区的动态内存管理控制顺序表空间的大小,即容量。 以下介绍的是基于动态顺序表的实现。 三.顺序表的实现 1.创建顺序表 创建一个顺序表结构,包含指向这块空间的起始地址,顺序表中存储数据的个数以及顺序表的最大容量。 typedef int SLDataType;//增强程序的可维护性,改变数据类型,只需改变int即可 typedef struct SeqList { SLDataType* arr; //指向顺序表的起始位置,方便扩容 int size; //顺序表的有效的数据个数 int capacity; //顺序表的容量大小 }SL;//类型的重命名 //等价于typedef struct SeqList SL; 2.

Neo4j图形数据库查询,Cypher语言详解

Cypher语言详解 Cypher是一种专为Neo4j图形数据库设计的声明式查询语言。它类似于SQL,但其设计目标是便于表达图数据库中常见的图形结构和操作。本文将详细介绍Cypher语言的基本语法、常见操作、高级功能以及使用Cypher进行图形数据分析的技巧。 1. Cypher的基本概念 Cypher查询语言通过简单、直观的语法,使得用户可以方便地对图数据库进行查询、插入、更新和删除操作。它的主要元素包括节点(Node)、关系(Relationship)和属性(Property)。 节点(Node):图中的实体。例如,社交网络中的用户、产品目录中的商品等。关系(Relationship):连接两个节点的边,表示节点之间的关系。例如,用户之间的好友关系、商品与类别之间的归属关系等。属性(Property):节点和关系的键值对,用于存储相关信息。例如,用户的姓名和年龄、商品的价格和描述等。 2. 创建操作 Cypher支持创建节点和关系的操作,语法直观且易于理解。 创建节点 创建一个标签为Person的节点,并设置其属性name和age: CREATE (n:Person {name: 'Alice', age: 30}) 可以一次创建多个节点: CREATE (a:Person {name: 'Bob', age: 25}), (b:Person {name: 'Charlie', age: 35}) 创建关系 创建两个节点并在它们之间建立KNOWS关系: CREATE (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) CREATE (a)-[:KNOWS]->(b) 在已有节点之间创建关系: MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Charlie'}) CREATE (a)-[:FRIEND]->(b) 3. 查询操作 Cypher的查询操作非常强大,支持多种条件的组合查询。 查询所有节点 查询所有Person标签的节点: MATCH (n:Person) RETURN n 查询特定属性的节点 查询所有名字为Alice的Person节点: MATCH (n:Person {name: 'Alice'}) RETURN n 查询关系 查询所有Person节点之间的KNOWS关系:

Web期末复习指南(2w字总结)

前言:本文旨在梳理Web技术常包含的内容,阅读完整篇文章后会对整体有个系统的认知,从前端的HTML到后端的MySql,对于大概试题中可能会涉及的地方都有所分析,通篇提供了许多代码案例,供读者更好的理解。对于一些很细节的东西如DOM对象、MySql的案例等等,笔者很想继续分享下去,但是受限于篇幅的原因只能点到为止,后面会考虑继续补充,争取覆盖到全部的知识点。 目录 一.HTML&CSS ▐ TABLE标签 ▐ FORM表单 ▐ CSS的引入方式 ▐ CSS的三种选择器 二.JavaScript ▐ 常见BOM&DOM操作 三.JSP ▐ JSP的内置对象 GET和POST的区别 forward和redirect的区别 ▐ EL表达式 四.Servlet 五.JavaBean&JDBC ▐ JDBC 六.MySql——CRUD ▐ Create(创建) ▐ Read(读取) ▐ Update(更新) ▐ Delete(删除) 一.HTML&CSS 这部分内容主要包含了静态页面的设计,首先关于基础的概念需要了解。HTML部分需要了解常用的标签,基础的HTML文档的格式。 基础的标签有 a定义超链接img定义图像h1~h6标题标签br换行div定义文档中的节(片段)p定义段落style定义文档的样式信息table定义表格title定义文档的标题video定义嵌入的视频内容img定义嵌入的图片from定义供用户输入的表单 更多的标签可以查看官方文档:HTML 标签参考手册 (w3school.com.cn) ▐ TABLE标签 以下面的李白的表格结构为例子,需要对整个结构有大致的规划。 首先,整个HTML由 head 和 body 俩部分组成,内容都在 body 里实现,table 标签用来指定表格,在表格内部 tr 标签表示行,在每一行中定义表格的单元类型,单元类型有俩种,分别是标准单元格 td 和表头单元格 th ,th 元素中的文本通常呈现为粗体并且居中,td 元素中的文本通常是普通的左对齐文本。但 th 可以让内容字体变粗。在 td 列标签中有 rowspan 属性设置单元格可纵跨的行数,colspan 属性定义单元格应该横跨的列数。 另外在 img 标签中可以通过 src 属性定义图片的地址,可以是相对地址也可以是绝对地址,也包含互联网地址