- 自制一个入门STM32 四足机器人具体开发顺序
弥途
足式机器人stm32机器人单片机
0前期准备1.知识储备学习STM32微控制器的基础知识,包括GPIO、定时器、串口通信等外设的使用,可通过官方文档、教程和视频课程进行学习。了解舵机控制原理,因为四足机器人通常使用舵机来实现关节运动。掌握基本的机械结构设计知识,以便设计机器人的腿部和身体结构。2.材料和工具准备硬件材料:STM32开发板(如STM32F103系列)、舵机(根据机器人腿部关节数量选择合适的舵机,一般每个腿部至少需要2
- 基于Python的Selenium详细教程总结(极简版)
weixin_41663997
pythonselenium开发语言
基于Python的Selenium详细教程总结一、PyCharm安装配置Selenium使用环境:Windows11,Python3.10.5,PyCharm2022.1.3,Selenium4.3.0需要技术:Python,HTML,CSS,JavaScriptSelenium安装:查看已安装的Python包:piplist安装Selenium4.3.0:pipinstallselenium==
- FastApi 练习之请求体子类模型之Set传参
五指山西
pythonapi
代码片段,注意tags是Set类型传参教程代码:fromtypingimportOptional,SetfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel):name:strdescription:Optional[</
- Helix 文本编辑器使用教程
邬楠满Seaman
Helix文本编辑器使用教程helixAGarry'sModroleplayingframeworkdevelopedbynebulousforthepeople.HelixISopen-source-thecodecanbeusedasyouwish.项目地址:https://gitcode.com/gh_mirrors/helix3/helix1.项目介绍Helix是一个后现代的模态文本编辑器
- Gin-contrib/pprof 使用教程
邵娇湘
Gin-contrib/pprof使用教程pprofginpprofmiddleware项目地址:https://gitcode.com/gh_mirrors/ppr/pprof项目介绍gin-contrib/pprof是Gin框架的一个扩展库,用于在Gin应用程序中集成Go语言的pprof性能分析工具。pprof是Go语言自带的性能分析工具,可以帮助开发者分析CPU、内存、阻塞等性能问题。通过g
- 工作流编写教程
weixin_34363171
前端phpViewUI
介绍ONES中使用了flowchart.js作为前端展示,并且扩展了flowchart.js的流程描述语言。flowchart.js参见:https://github.com/adrai/flowchart.js描述语言分为三部分,使用\n\n(空一行)作为分割,分别是节点定义、执行流程描述、节点权限描述节点定义eg:make_stockout=>operation:生成出库单:>m:Sale/O
- python与excel整合全教程
刘同学Python学习日记
pythonexcel开发语言
Python与Excel的整合非常强大,尤其适合处理大数据、自动化表格操作以及进行高级数据分析。以下是一个全教程,涵盖常用的Python库及其应用:1.准备工作安装必要的库:使用以下命令安装常用库:pipinstallopenpyxlpandasxlrdxlsxwriterpywin32openpyxl:用于操作Excel的.xlsx文件(推荐)。pandas:强大的数据分析工具,支持读取和写入E
- Python.NET 安装与使用教程
卫伊祺Ralph
Python.NET安装与使用教程项目地址:https://gitcode.com/gh_mirrors/py/pythonnet本教程将指导你了解并安装Python.NET——这是一个让Python程序员能够无缝集成.NET框架的开源库。1.项目目录结构及介绍在克隆或下载pythonnet的源代码仓库后,你会看到以下基本目录结构:pythonnet/├──LICENSE#许可文件├──MANIF
- python学习专栏
zhousenshan
python新赛道python
推荐学习资料《15分钟轻松学Python》教程目录-CSDN博客每天40分玩转Django教程目录-CSDN博客Pycharm社区版搭建Django环境及Django简单项目、操控mysql数据库-CSDN博客这个开源有关于事务方面高级内容介绍:django-vue-lyadmin:django-vue-lyadmin前端采用vue3+elementplus,后端采用PythonDjangoDRF
- Python中使用SQLite
昂热校长
开发十年,就只剩下这套Java开发体系了>>>SQLite:SQLite是一种数据库,Python中集成了SQLite3,所以在Python中使用SQLite,可以直接导入SQLite包,不需要做额外的配置。更多的SQLite简介和相关知识可以查看专门的教程:http://www.runoob.com/sqlite/sqlite-tutorial.htmlPython中使用SQLite:可以直接像
- 区块链学习资料
sunchenzl
区块链学习资料
本文列举了关于区块链和数字加密技术的文章和资源,分为以下几个部分:构建区块和基础;基础(和历史);关键概念——包括特定课题(例如区块链治理);隐私和安全;扩展;共识算法、加密货币经济和投资;资金筹集和通证分布;去中心化交易所;稳定货币;加密货币经济原生产品(数字加密收藏品、管理市场、游戏)。最后,文章还提供了开发者教程、实践教程和人物事迹,以及其他资源,例如时事新闻和课程。干货满满哦!1、构建区块
- .NET MAUI 项目教程
瞿格女
.NETMAUI项目教程docs-mauiThisrepositorycontainsdocumentationfor.NETMulti-platformAppUI(MAUI).项目地址:https://gitcode.com/gh_mirrors/do/docs-maui1.项目介绍什么是.NETMAUI?.NETMulti-platformAppUI(.NETMAUI)是一个跨平台的UI框架,
- 如何写一份合格的大数据简历(附简历模板)教程
itLeeyw573
老板必点的高分简历sqliteoraclemysqlsqlzookeeperkafkabigdata
一、简历的重要性简历是求职者给招聘者的第一印象,一份合格的简历能够快速让招聘者了解你的基本信息、工作经历、技能特长等,从而决定是否给予你面试机会。它是开启理想工作大门的钥匙,所以一定要重视起来。【编辑/下载】:大数据开发简历范文二、简历结构基本信息:包含姓名、性别、联系方式(电话、邮箱)、求职意向。姓名要突出显示,联系方式务必准确无误,求职意向明确且具体,比如“Java开发工程师”,让招聘者一眼就
- 《JS教程》笔记:一、JavaScript编程语言——2.3现代模式use strict(严格模式、旧模式)
Dontla
javascriptjavascript笔记开发语言
现代JavaScript教程中文版现代JavaScript教程文章目录现代模式,"usestrict""usestrict"确保\"usestrict\"出现在最顶部没有办法取消`usestrict`浏览器控制台默认不启动`usestrict`是否应该显式声明"usestrict"?(非必须,有办法自动启用)现代模式,“usestrict”长久以来,JavaScript不断向前发展且并未带来任何兼
- vue 中利用canvas 给pdf文件加水印---详细教程(附上完整代码)
阿土不土
pdf前端vue.js
需求:在h5网页中打开pdf文件,要求给文件添加水印实现技术及插件:vue,vue-pdf,canvas插件安装:npmivue-pdf--savenpmipdf-lib--save原理:实现pdf预览,在显示pdf的容器上添加一层遮罩,用来存放水印具体实现代码详细介绍:{{pageNum}}/{{totalPages}}上一页下一页相关解释::page从第几页开始显示:src:pdf存放路径@p
- 【React系列】父子组件通信—props属性传值
川峰
ReactReactprops传值
本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5MDAzNzkwNA==&action=getalbum&album_id=1566025152667107329)一.认识组件的嵌套组件之间存在嵌套关系:在之前的案例中,我们只是创建了一个组件App;如果我们一个应用程序将所有的逻辑都放在一个组件中,那么这个组件就会变
- I2C协议与FPGA开发教程_VHDL/Verilog实现
侯昂
本文还有配套的精品资源,点击获取简介:本压缩包文件包含了I2C协议的学习资料,特别是针对FPGA开发的实验教程。内容涵盖了I2C基础知识、通信模式、总线仲裁机制,以及用VHDL和Verilog语言实现I2C控制器的方法。教程还包括在FPGA平台配置I2C接口的详细步骤和实验指导,帮助读者深入理解I2C协议,并在FPGA上实现其控制。1.I2C协议基础介绍I2C(Inter-IntegratedCi
- ModelNet40-C 项目使用教程
薛烈珑Una
ModelNet40-C项目使用教程ModelNet40-CRepofor"BenchmarkingRobustnessof3DPointCloudRecognitionagainstCommonCorruptions"https://arxiv.org/abs/2201.12296项目地址:https://gitcode.com/gh_mirrors/mo/ModelNet40-C1.项目介绍M
- MyBatis-Spring-Boot-Starter 教程
段沙璐Blythe
MyBatis-Spring-Boot-Starter教程spring-boot-starterMyBatisintegrationwithSpringBoot项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot-starter1.项目目录结构及介绍MyBatis-Spring-Boot-Starter是一个方便地将MyBatis集成到SpringB
- 子曰-o1:网易有道开源国内首个分步式讲解推理模型,支持K12数学教学
蚝油菜花
每日AI项目与应用实例人工智能开源
❤️如果你也关注AI的发展现状,且对AI应用开发非常感兴趣,我会每日分享大模型与AI领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!微信公众号|搜一搜:蚝油菜花快速阅读功能:子曰-o1是国内首个分步式讲解推理模型,支持K12数学教学。技术:采用14B轻量级架构,专为消费级显卡设计,能在低显存设备上稳定运行。应用:应用于网易有道旗下的AI全科学习助手“有道小P
- Django SimpleUI运维管理系统搭建教程
ivwdcwso
开发运维sqlite数据库DjangoSimpleUIDjangopython开发
DjangoSimpleUI运维管理系统搭建教程本教程将详细介绍如何从零搭建一个基于DjangoSimpleUI的运维管理系统。一、环境准备1.安装Python和相关依赖#安装Python3.8+sudoaptinstallpython3.8python3.8-dev#安装虚拟环境pip3installvirtualenv#创建并激活虚拟环境virtualenvvenvsourcevenv/bin
- python 分布式集群_Python搭建Spark分布式集群环境
小国阁下
python分布式集群
前言ApacheSpark是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark最大的特点就是快,可比HadoopMapReduce的处理速度快100倍。本文没有使用一台电脑上构建多个虚拟机的方法来模拟集群,而是使用三台电脑来搭建一个小型分布式集群环境安装。本教程采用Spark2.0以上版本(比如Spark2.0.2、Spark2.1.0等)搭建集群,同样适用于搭建Spark1.6.2
- 疯狂的 Web 应用开源项目
一个生命
Web开发Cookieweb开源项目应用
原文作者:陈皓原文链接:http://coolshell.cn/articles/5132.html#more-5132文章来源:Best“mustknow”opensourcestobuildthenewWeb。个人感觉这个收集贴收集成相当的全。学习HTML5编程和设计★HTML5Rocks:MajorFeatureGroups的学习HTML5的资源(HTML5演示,教程).源码很不错的HTML
- websocket webworker教程及应用
WebSocket和WebWorkers是两种不同的Web技术,分别用于实现实时通信和后台线程处理。以下是它们的简要教程:WebSocket教程什么是WebSocket?WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动向客户端推送数据,适用于实时通信场景。如何使用WebSocket?创建WebSocket对象:constsocket=newWebSocket('ws
- 【 书生·浦语大模型实战营】学习笔记(五):LMDeploy 量化部署
GoAI
深入浅出LLM深入浅出AI大模型LLM部署人工智能LMDeploy
AI学习星球推荐:GoAI的学习社区知识星球是一个致力于提供《机器学习|深度学习|CV|NLP|大模型|多模态|AIGC》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI1;;爱好者学习,性价比非常高!加入星球➡️点击链接
- Window 下Mamba 环境安装踩坑问题汇总及解决方法 (无需绕过selective_scan_cuda)
yyywxk
#Python模块有关问题pythonWindowsMamba
导航安装教程导航Mamba及Vim安装问题参看本人博客:Mamba环境安装踩坑问题汇总及解决方法(初版)Linux下Mamba及Vim安装问题参看本人博客:Mamba环境安装踩坑问题汇总及解决方法(重置版)Windows下Mamba的安装参看本人博客:Window下Mamba环境安装踩坑问题汇总及解决方法(无需绕过selective_scan_cuda)Linux下Vim安装问题参看本人博客:Li
- Linux服务器上安装 Vision Mamba 虚拟环境---全面教程
wsa-
python计算机视觉机器学习
本人装环境踩了很多坑,翻了很多大佬的博客最终安装并运行成功!以下是我的经验分享:1.去GitHub下载VisionMamba的code并上传至服务器上GitHub-hustvl/Vim:VisionMamba:EfficientVisualRepresentationLearningwithBidirectionalStateSpaceModelgithub.com/hustvl/Vim编辑2.环
- python字符串常用方法整理
shdxhsq
python学习python字符串
参考教程:https://www.w3school.com.cn/python/python_strings.asphttps://www.runoob.com/python3/python3-string.html注意:在jupyter中,可以在方法名后面打一个问号,然后页面下方会显示这个方法的用法和参数介绍。目录一、摘要二、常用的18个方法1.captialize()2.center()3.c
- protoc-go-inject-tag 使用教程
农彩媛Louise
protoc-go-inject-tag使用教程项目地址:https://gitcode.com/gh_mirrors/pr/protoc-go-inject-tag项目介绍protoc-go-inject-tag是一个用于在生成的Go结构体中注入自定义标签的工具。在使用ProtocolBuffers(protobuf)生成Go代码时,默认情况下生成的结构体标签是固定的,无法灵活设置。protoc
- protoc-go-inject-tag 项目使用教程
柏滢凝Wayne
protoc-go-inject-tag项目使用教程protoc-go-inject-tagInjectcustomtagstoprotobufgolangstruct项目地址:https://gitcode.com/gh_mirrors/pr/protoc-go-inject-tag1.项目的目录结构及介绍protoc-go-inject-tag/├──cmd/│└──protoc-go-inj
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持