- Ubuntu 安装 GitLab
snail_simba_eric
技术UbuntuGitlab
apt-getupdateapt-getinstallcurlopenssh-serverca-certificatescurlhttps://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh|bashEXTERNAL_URL="http://gitlab.example.com"apt-getinsta
- Windows Server 2022 中文版、英文版下载 (2024 年 12 月更新)
windows-server
WindowsServer2022中文版、英文版下载(2024年12月更新)WindowsServer2022x64,Version21H2(updatedDec2024)请访问原文链接:https://sysin.org/blog/windows-server-2022/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindowsServer2022采用先进的多层安全机制、A
- Windows Server 2025 中文版、英文版下载 (2024 年 11 月更新)
windows-server
WindowsServer2025中文版、英文版下载(2024年11月更新)WindowsServer2025LTSCx64(updatedNov2024)请访问原文链接:https://sysin.org/blog/windows-server-2025/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2024年11月3日,微软宣布WindowsServer2025从Build
- 融云IM干货丨在SwiftUI中集成IMKit,集成IMKit的基本步骤有哪些
融云im即时通讯
创建项目:打开Xcode并创建一个新的Swift项目。RongCloudIM/IMKit支持Swift,确保你的项目设置为使用Swift语言。安装IMKit:你可以通过CocoaPods来安装iOS版本的IMKit(含UISDK)。在Podfile中添加以下内容:rubypod'RongCloudIM/IMKit','~>x.y.z'然后,在终端中运行以下命令:podrepoupdatepodin
- 安卓动态设置Unity图形API
Jack Yan
Unity进阶androidunity游戏引擎
命令行方式Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLESUnity设置安卓设置创建自定义活动并将其设置为应用程序入口点。在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments(StringcmdLine)方法。在该方法中,将cmdLine参数与您自己的启动参数连接起来,然后返回结果。重要:cm
- MySQL实现Oracle merge into函数
咸鱼的倔强
MySQLmysqloracle数据库
MySQL实现Oraclemergeinto函数之前有撰文Oracle、MySQL兼容–mergeinto,其中介绍了MySQL用INSERT…ONDUPLICATEKEYUPDATE和存储过程实现mergeinto,本文介绍其它的两种方法实现mergeinto。1、replaceinto语法同insertinto,使用简单,但有限制,replaceinto是根据主键去匹配,故replaceint
- oracle12c merge into,Oracle MERGE INTO的使用方法
俊銘
oracle12cmergeinto
非常多时候我们会出现例如以下情境,假设一条数据在表中已经存在,对其做update,假设不存在,将新的数据插入.假设不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这种话须要写很多其它的代码,同一时候性能也不好,要来回数据库两次.使用merge的话则能够一条SQL语句完毕.1)主要功能提供有条件地更新和插入数据到数据库表中假设该行存在,运
- 【oracle】-函数:merge into...
知逆
oracle
0、前言我们在业务中可能碰到这种情况:如果用户在数据库中不存在,那么就进行插入;否则就进行修改。按我们平时的做法可能是在业务层先查询用户存不存在,如果存在,那么就更新。那我们下面讲一种在oracle数据库层面的条件判断–mergeinto。1、语法MERGEINTO表AUSING与表A产生关联字段值ON进行和表A的关联WHENMATCHEDTHEN--如果匹配,做更新操作updateset....
- Oracle之Merge into函数使用
limts
oracle数据库
Mergeinto函数为Oracle9i添加的语法,用来合并update和insert语句。所以也经常用于update语句的查询优化:一、语法格式:mergeintoAusingBon(A.a=B.a)--注意on后面带括号,且不能更新join的字段whenmatchedthenupdatesetA.b=B.bwhennotmatchedtheninsertA(A.a,A.b)values(B.a
- Anaconda 安装以及命令总结文档
张登杰踩
人工智能condapython人工智能pytorch
以下是一份详细的Anaconda命令总结文档,涵盖环境管理、包管理、配置、常用工具等核心操作:Anaconda命令总结1.安装与更新命令说明conda--version查看Conda版本condaupdatenumpy更新numpy自身condaupdateanaconda更新Anaconda元包(包括大部分科学计算库)condainstallnumpy=安装指定版本的numpy2.环境管理创建与
- centos6.5wordpress部署
ljx2470594562
linux
1、更新yum源[root@bogon~]#yum-yupdate2、安装软件yuminstallhttpdmysql-serverphpphp-mysqlphp-gdphp-imapphp-ldapphp-odbcphp-pearphp-xmlphp-xmlrpc-y3、查看php版本php-version如果低于5.6则卸载:查看php版本命令:#php-v这个命令是删除不干净的#yumrem
- ubuntu调用图形化网络测试工具
hunter206206
网络ubuntu网络测试工具
在Ubuntu中,除了命令行工具外,还有一些图形化的网络测试工具可以帮助你更直观地测试和分析网络性能。以下是几款常用的图形化网络测试工具及其使用方法:1.gnome-nettoolgnome-nettool是一个简单的图形化网络工具集,包含ping、traceroute、端口扫描等功能。安装:sudoaptupdatesudoaptinstallgnome-nettool使用:在应用程序菜单中搜索
- 使用Swing制作类似QQ界面|圆角界面
光芒再现0394
JAVAswingqq任务jdkclass图形
制作这个界面需要jdk1.6update10以上的版本,因为使用了透明窗体。完成的界面如下:这里只列出部分关键代码:首先是制作圆角界面:Shapeshape=null;shape=newRoundRectangle2D.Double(0,0,width,height,5.5D,5.5D);AWTUtilities.setWindowShape(frame,shape);制作渐变:finalPain
- uniapp热更新apk
孙芝琳_629
uniapp
第一步:AppStore创建应用地址:https://apps.seepine.com/admin/app创建应用,将打包的APK部署,发布版本,改正式版第二步:代码中引入组件组件地址:【WrapUpdate】APP版本更新、支持wgt热更新、测试版本、跳转appStore等所有方式,-DCloud插件市场核心数据:id第三步:发布版本把hbuild的版本名+0.1,hbuild的版本号+1,后台
- MyBatis最佳实践:事务
苏-言
mybatisjava数据库
事务:定义:一个事务通常对应着一个业务,同时事务不可再分,最小工作单元一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成事务只和DML语句相关,或者说语句才有事务。这个和业务逻辑相关,业务逻辑不同,DML语句数量也会不相同事务的四大特性:原子性:一个事务是一个不可分割的工作单元一致性:事务在执行前和执行后,数据库的状态必须保持一致。这意味着事务执行过程中的任
- apt-get update出现NO_PUBKEY问题解决
不与天斗8866
linuxubuntulinuxapt-getno_pubkey
apt-getupdate报错root@2870e7cf8e74:/usr/tools#apt-getupdateIgn:1https://mirrors.aliyun.com/ubuntutrustyInReleaseGet:2https://mirrors.aliyun.com/ubuntutrustyRelease[58.5kB]Get:3https://mirrors.aliyun.com
- sudo apt-get update 镜像连接不成功
momo_mo520
ubuntudebianlinux运维
报错Ign:1https://mirrors.tuna.tsinghua.edu.cn/ubuntubionicInReleaseIgn:2https://pkg.jenkins.io/debian-stablebinary/InReleaseErr:3https://pkg.jenkins.io/debian-stablebinary/ReleaseCertificateverification
- 在centos9上编译opensip各个模块遇到的问题【centos9编译opensips终结篇】
狂爱代码的码农
VOIP那些事opensips
mmgeoip需要安装libmaxminddb编译安装https://github.com/maxmind/libmaxminddb.gitgitsubmoduleupdate--init--recursivednfinstallpandocmkdirbuildcdbuildcmake..makemakeinstallhttpd模块错误解决方案dnfinstalllibmicrohttpd-dev
- 【国产数据库】GBase学习⑨ - 存储引擎
洁癖丶
GBase学习数据库
【国产数据库】GBase学习⑨-存储引擎存储引擎存储方法存储方法的使用分区表表分片分区自动管理索引类型数据压缩事务存储引擎USTORE,表示表支持Inplace-Update存储引擎。(原文更新技术,类似mysql的on-do)ASTORE,表示表支持Append-Only存储引擎。(有表??的问题,↑解决这个问题)存储方法ROW:表示表的数据将以行式存储;行存储适合于OLTP业务,适用于点查询或
- flask项目中使用schedule定时任务案例
张小特
flaskpython后端
pipinstallschedule代码importschedule#定义定时任务schedule.every().day.at("22:00").do(update_data)schedule.every().day.at("22:00").do(update_cumulative_data)#启动定时任务defrun_scheduler():whileTrue:schedule.run_pen
- freebsd12 安装gnome3图形界面
sayang_shao
FreeBSDFreeBSD12gnome3freebsd12
1、准备工作注:由于我是在实体机上做的所以没有提供截图。也可以访问官方文档进行安装:https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x11-wm.html已经安装完Freebsd12系统可以联网2、开始安装pkg更新#pkgupdate安装显卡驱动(本机为intel)#pkginstallxf86-video-intel开启li
- 【云原生技术】K8S更新策略有哪些方式,每种方式的可选必填字段有哪些,详细举例说明
阿寻寻
云原生kubernetes容器
更新策略有哪些方式一、更新策略详细举例1.**RollingUpdate(滚动更新)**说明:必填字段:可选字段:示例:2.**Recreate(重建)**说明:必填字段:可选字段:示例:3.**OnDelete(手动更新)**说明:必填字段:可选字段:示例:总结详细示例小结二、Recreate不可选minReadySeconds吗?Recreate更新策略与minReadySeconds示例总结
- MySQL出现ERROR 1093-You can‘t specify target table ‘xx‘ for update in FROM clause错误的解决方法
what_2018
数据库mysqlsql数据库
错误在MySQL中,可能会遇到Youcan'tspecifytargettable'表名'forupdateinFROMclause这样的错误它的意思是说,不能在同一语句中,先select出同一表中的某些值,再update这个表,即不能依据某字段值做判断再来更新某字段的值。--查询user_id为空并且按照account_no分组account_no大于1条的,删除记录deleteformxx_t
- debian 安装php7_Ubuntu/Debian安装PHP 7.2教程
一碗面条v
debian安装php7
适用系统:Ubuntu16.04/14.04、Debian8/9添加软件源Ubuntu#安装软件源拓展工具apt-yinstallsoftware-properties-common#添加PHPPPA源,需要按一次回车add-apt-repositoryppa:ondrej/php#更新软件源缓存aptupdateDebian#添加GPGwget-O/etc/apt/trusted.gpg.d/p
- Hive(11):Transactional Tables事务表
不死鸟.亚历山大.狼崽子
hivehivehadoop数据仓库
1Hive事务背景知识Hive本身从设计之初时,就是不支持事务的,因为Hive的核心目标是将已经存在的结构化数据文件映射成为表,然后提供基于表的SQL分析处理,是一款面向分析的工具。且映射的数据通常存储于HDFS上,而HDFS是不支持随机修改文件数据的。这个定位就意味着在早期的Hive的SQL语法中是没有update,delete操作的,也就没有所谓的事务支持了,因为都是select查询分析操作。
- Hive建表时开启事务机制导致insert失败
大数据学习与分享
HadoopHive大数据hivehadoop
建表语句:createtableA(table_codestring,data_dtstring,update_dtstring)clusteredby(table_code)into1bucketsrowformatdelimitedfieldsterminatedby'\033'storedasorc--orc格式tablproperties('transactional'='true');执
- speedtest For Ubuntu/Debian
itmanll
linux服务器运维
SpeedtestCLI:Internetspeedtestforthecommandline##Ifmigratingfrompriorbintrayinstallinstructionspleasefirst...#sudorm/etc/apt/sources.list.d/speedtest.list#sudoapt-getupdate#sudoapt-getremovespeedtest#
- 通过gui安装deb包
翻滚吧键盘
服务器运维
su-aptupdate&&aptinstallgdebi右击deb包,选择gdebi打开即可。参考https://debian-beginners-handbook.arpinux.org/bookworm-en/download/the_beginners_handbook.pdf
- python md5加密
计算机辅助工程
python前端javascript
在Python中,可以使用hashlib模块来进行MD5加密。以下是一个简单的例子:importhashlibdefmd5_encryption(data):md5=hashlib.md5()#创建一个md5对象md5.update(data.encode('utf-8'))#使用utf-8编码数据returnmd5.hexdigest()#返回加密后的十六进制字符串#使用函数data="Hell
- 解决redux中state更新是异步的问题
_Kay_
前端reactredux
在开发的过程中突然发现了一个非常诡异的问题,伪代码如下:this.props.dispatch(updateData(value))//1console.log(this.props.data)//2状态没有更新setTimeout(()=>//3状态发生了更新)于是猜想redux执行action应该是同步的,但是reducer中将新状态返回更新store数据仓库的过程应该是异步的.所以当上面1处
- jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
qiaolevip
每天进步一点点学习永无止境跨域众观千象
XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. test.html:1
- mysql 分区查询优化
annan211
java分区优化mysql
分区查询优化
引入分区可以给查询带来一定的优势,但同时也会引入一些bug.
分区最大的优点就是优化器可以根据分区函数来过滤掉一些分区,通过分区过滤可以让查询扫描更少的数据。
所以,对于访问分区表来说,很重要的一点是要在where 条件中带入分区,让优化器过滤掉无需访问的分区。
可以通过查看explain执行计划,是否携带 partitions
- MYSQL存储过程中使用游标
chicony
Mysql存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)-- -- 实例-- 存储过程名为:getUserInfo-- 参数为:date_day日期格式:2008-03-08-- BEGINdecla
- mysql 和 sqlite 区别
Array_06
sqlite
转载:
http://www.cnblogs.com/ygm900/p/3460663.html
mysql 和 sqlite 区别
SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率
MYSQL、Sybase、Oracle等这些都是试用于服务器数据量大功能多需要安装,例如网站访问量比较大的。而sq
- pinyin4j使用
oloz
pinyin4j
首先需要pinyin4j的jar包支持;jar包已上传至附件内
方法一:把汉字转换为拼音;例如:编程转换后则为biancheng
/**
* 将汉字转换为全拼
* @param src 你的需要转换的汉字
* @param isUPPERCASE 是否转换为大写的拼音; true:转换为大写;fal
- 微博发送私信
随意而生
微博
在前面文章中说了如和获取登陆时候所需要的cookie,现在只要拿到最后登陆所需要的cookie,然后抓包分析一下微博私信发送界面
http://weibo.com/message/history?uid=****&name=****
可以发现其发送提交的Post请求和其中的数据,
让后用程序模拟发送POST请求中的数据,带着cookie发送到私信的接入口,就可以实现发私信的功能了。
- jsp
香水浓
jsp
JSP初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了
JSP执行
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后
- 在 Windows 上安装 SVN Subversion 服务端
AdyZhang
SVN
在 Windows 上安装 SVN Subversion 服务端2009-09-16高宏伟哈尔滨市道里区通达街291号
最佳阅读效果请访问原地址:http://blog.donews.com/dukejoe/archive/2009/09/16/1560917.aspx
现在的Subversion已经足够稳定,而且已经进入了它的黄金时段。我们看到大量的项目都在使
- android开发中如何使用 alertDialog从listView中删除数据?
aijuans
android
我现在使用listView展示了很多的配置信息,我现在想在点击其中一条的时候填出 alertDialog,点击确认后就删除该条数据,( ArrayAdapter ,ArrayList,listView 全部删除),我知道在 下面的onItemLongClick 方法中 参数 arg2 是选中的序号,但是我不知道如何继续处理下去 1 2 3
- jdk-6u26-linux-x64.bin 安装
baalwolf
linux
1.上传安装文件(jdk-6u26-linux-x64.bin)
2.修改权限
[root@localhost ~]# ls -l /usr/local/jdk-6u26-linux-x64.bin
3.执行安装文件
[root@localhost ~]# cd /usr/local
[root@localhost local]# ./jdk-6u26-linux-x64.bin&nbs
- MongoDB经典面试题集锦
BigBird2012
mongodb
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟
- JavaScript异步编程Promise模式的6个特性
bijian1013
JavaScriptPromise
Promise是一个非常有价值的构造器,能够帮助你避免使用镶套匿名方法,而使用更具有可读性的方式组装异步代码。这里我们将介绍6个最简单的特性。
在我们开始正式介绍之前,我们想看看Javascript Promise的样子:
var p = new Promise(function(r
- [Zookeeper学习笔记之八]Zookeeper源代码分析之Zookeeper.ZKWatchManager
bit1129
zookeeper
ClientWatchManager接口
//接口的唯一方法materialize用于确定那些Watcher需要被通知
//确定Watcher需要三方面的因素1.事件状态 2.事件类型 3.znode的path
public interface ClientWatchManager {
/**
* Return a set of watchers that should
- 【Scala十五】Scala核心九:隐式转换之二
bit1129
scala
隐式转换存在的必要性,
在Java Swing中,按钮点击事件的处理,转换为Scala的的写法如下:
val button = new JButton
button.addActionListener(
new ActionListener {
def actionPerformed(event: ActionEvent) {
- Android JSON数据的解析与封装小Demo
ronin47
转自:http://www.open-open.com/lib/view/open1420529336406.html
package com.example.jsondemo;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
impor
- [设计]字体创意设计方法谈
brotherlamp
UIui自学ui视频ui教程ui资料
从古至今,文字在我们的生活中是必不可少的事物,我们不能想象没有文字的世界将会是怎样。在平面设计中,UI设计师在文字上所花的心思和功夫最多,因为文字能直观地表达UI设计师所的意念。在文字上的创造设计,直接反映出平面作品的主题。
如设计一幅戴尔笔记本电脑的广告海报,假设海报上没有出现“戴尔”两个文字,即使放上所有戴尔笔记本电脑的图片都不能让人们得知这些电脑是什么品牌。只要写上“戴尔笔
- 单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
bylijinnan
java算法面试题
import java.util.LinkedList;
/*
单调队列 滑动窗口
单调队列是这样的一个队列:队列里面的元素是有序的,是递增或者递减
题目:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.
要求:f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1
问题的另一种描述就
- struts2处理一个form多个submit
chiangfai
struts2
web应用中,为完成不同工作,一个jsp的form标签可能有多个submit。如下代码:
<s:form action="submit" method="post" namespace="/my">
<s:textfield name="msg" label="叙述:">
- shell查找上个月,陷阱及野路子
chenchao051
shell
date -d "-1 month" +%F
以上这段代码,假如在2012/10/31执行,结果并不会出现你预计的9月份,而是会出现八月份,原因是10月份有31天,9月份30天,所以-1 month在10月份看来要减去31天,所以直接到了8月31日这天,这不靠谱。
野路子解决:假设当天日期大于15号
- mysql导出数据中文乱码问题
daizj
mysql中文乱码导数据
解决mysql导入导出数据乱码问题方法:
1、进入mysql,通过如下命令查看数据库编码方式:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------+
| Variable_name&nbs
- SAE部署Smarty出现:Uncaught exception 'SmartyException' with message 'unable to write
dcj3sjt126com
PHPsmartysae
对于SAE出现的问题:Uncaught exception 'SmartyException' with message 'unable to write file...。
官方给出了详细的FAQ:http://sae.sina.com.cn/?m=faqs&catId=11#show_213
解决方案为:
01
$path
- 《教父》系列台词
dcj3sjt126com
Your love is also your weak point.
你的所爱同时也是你的弱点。
If anything in this life is certain, if history has taught us anything, it is
that you can kill anyone.
不顾家的人永远不可能成为一个真正的男人。 &
- mongodb安装与使用
dyy_gusi
mongo
一.MongoDB安装和启动,widndows和linux基本相同
1.下载数据库,
linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
2.解压文件,并且放置到合适的位置
tar -vxf mongodb-linux-x86_64-ubun
- Git排除目录
geeksun
git
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。
有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。
1. 针对单一工程排除文件
这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一
- Ubuntu 创建开机自启动脚本的方法
hongtoushizi
ubuntu
转载自: http://rongjih.blog.163.com/blog/static/33574461201111504843245/
Ubuntu 创建开机自启动脚本的步骤如下:
1) 将你的启动脚本复制到 /etc/init.d目录下 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限 $ sudo chmod 755
- 第八章 流量复制/AB测试/协程
jinnianshilongnian
nginxluacoroutine
流量复制
在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行并发
- 电商系统商品表设计
lkl
DROP TABLE IF EXISTS `category`; -- 类目表
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `category` (
`id` int(11) NOT NUL
- 修改phpMyAdmin导入SQL文件的大小限制
pda158
sqlmysql
用phpMyAdmin导入mysql数据库时,我的10M的
数据库不能导入,提示mysql数据库最大只能导入2M。
phpMyAdmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
- Tomcat性能调优方案
Sobfist
apachejvmtomcat应用服务器
一、操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。
【适用场景】 任何项目。
二、Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。
J
- SQLServer学习笔记
vipbooks
数据结构xml
1、create database school 创建数据库school
2、drop database school 删除数据库school
3、use school 连接到school数据库,使其成为当前数据库
4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一