- spring 整合mybatis 出现解析不了配置文件的问题
yxlc_liushy
mybatisspringmybatis3spring
1,错误内容:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sqlSessionFactory'definedinclasspathresource[spring/applicationContext.xml]:Invocationofinitmethodfailed;nested
- geogebra标签大小设置
xjghxc
geogebrajavascript
$\scalebox{5}{%n}$or$\scalebox{5}{%n}$incaptionfortheobjectPlaceholderMeaning%cThevalueoftheadjacentspreadsheetcell(totheright),whichshouldbeanindependenttextNotdynamic:i.e.thecaptionwon'tbeupdatedunl
- 03Spring底层架构核心概念解析
奔向sj
工作学习记录架构java数据库
为了感谢罕哥对我工作的帮助,特此记录下学习过程,期待成为和罕哥一样优秀的人时间:2024.7.13内容:spring源码课程3学习记录一、BeanDefinitionBeanDefinition表示Bean的定义,BeanDefinition中存在很多属性用来描述一个Bean的特点class:表示Bean类型scope:表示Bean的作用域(单例/原型)lazyInit:表示Bean是否是懒加载i
- 报错解决记录:Annotation-specified bean name ‘xxx‘ for bean class [xxx]conflicts with existing...
hamster2021
springcloud
问题:对代码做修改后启动服务,爆出了如下错误:2024-11-1321:43:25,564ERROR[main][SpringApplication.java:837]-Applicationrunfailedorg.springframework.context.annotation.ConflictingBeanDefinitionException:Annotation-specifiedb
- mybatis返回Map
Davy的空白笔记
mybatismybatisjava
返回多条数据的时候,用map作为返回值,key保存一些标志性字符串,value保存具体的实体类或者是hashMap都很好用。mapper.java//Map:键是这条记录的主键,值是记录封装后的javaBean//@MapKey:告诉mybatis封装这个map的时候使用哪个属性作为map的key@MapKey("id")publicMapgetEmpByLastNameLikeReturnMap
- 使用 Kotlin 将 Vertx 和 Springboot 整合
zimoyin
springbootkotlinjava
本篇文章目的是将Springboot和Vertx进行简单整合。整合目的仅仅是为了整活,因为两个不同的东西整合在一起提升的性能并没有只使用Vertx性能高,因此追求高性能的话这是在我来说不推荐。而且他们不仅没有提高很多性能甚至增加了学习成本一、整合流程首先呢目标是将Vertx最终整合成和使用Springbootweb一样简单的httpserver。步骤:获取Springboot所有的Bean注册路由
- 解释Spring框架中bean的生命周期?思维导图 代码示例(java 架构)
用心去追梦
javaspring架构
Spring框架中Bean的生命周期在Spring框架中,Bean的生命周期包括从创建到销毁的一系列步骤。理解这些步骤有助于更好地管理和调试Spring应用程序。以下是SpringBean的生命周期阶段及其详细说明。SpringBean的生命周期阶段实例化:Spring容器创建Bean的实例。属性设置:Spring容器调用setter方法为Bean的属性赋值。Aware接口方法调用:如果Bean实
- Spring Bug解决
爱掉发的小龙
springbugjava
报错:Exceptioninthread"main"org.springframework.beans.factory.NoUniqueBeanDefinitionException:Noqualifyingbeanoftype'com.itxl.spring6.iocxml.User'available:expectedsinglematchingbeanbutfound2:user,user1
- 探索Apache NetBeans Maven Archetypes —— 构建强大的NetBeans套件
滕娴殉
探索ApacheNetBeansMavenArchetypes——构建强大的NetBeans套件netbeans-mavenutils-archetype-nbm-suite-rootApacheIncubatorPagespeedWebsite是ApachePagespeed项目的一个孵化网站,提供了关于ApachePagespeed项目的介绍、文档和示例代码。这个项目适用于Web开发者和性能优
- 探秘Apache NetBeans Maven插件:nbm-maven-plugin深度剖析
穆璋垒Estelle
探秘ApacheNetBeansMaven插件:nbm-maven-plugin深度剖析netbeans-mavenutils-nbm-sharedApacheNetBeansMavenUtilsNBM-Shared是一个用于共享ApacheNetBeansMaven插件的通用代码的库。它包含了许多用于处理Maven插件的通用代码,如解析POM文件、处理依赖关系、生成NBM文件等。这个库适用于任何
- 探索Apache NetBeans Parent Pom:加速你的Maven项目开发之旅
萧崧锟
探索ApacheNetBeansParentPom:加速你的Maven项目开发之旅netbeans-parentNetBeansParent:这是一个用于管理NetBeans项目的父pom文件。它为NetBeans项目提供了一个通用的Maven配置,包括依赖管理、插件配置等。适合NetBeans开发者和希望使用Maven进行项目管理的开发者。特点包括支持NetBeans平台的特性、自动生成项目模板
- 探索Apache NetBeans的魔力:Maven Archetypes带你走进高效开发的世界
柳旖岭
探索ApacheNetBeans的魔力:MavenArchetypes带你走进高效开发的世界netbeans-mavenutils-archetype-nbm-suite-rootApacheNetBeansMavenArchetypesforApacheNetBeansModulesSuite项目地址:https://gitcode.com/gh_mirrors/ne/netbeans-mave
- 探秘高效开发利器——Apache NetBeans Maven 插件工具包
孟振优Harvester
探秘高效开发利器——ApacheNetBeansMaven插件工具包netbeans-mavenutils-nbm-maven-harnessThisrepositoryhavebeenmergedtohttps://github.com/apache/netbeans-mavenutils-nbm-maven-plugin/项目地址:https://gitcode.com/gh_mirrors/
- 推荐开源项目:Apache NetBeans Maven Skin for Website
黎杉娜Torrent
推荐开源项目:ApacheNetBeansMavenSkinforWebsitenetbeans-webskinApacheNetBeansmavensiteskinformavenbuild项目地址:https://gitcode.com/gh_mirrors/ne/netbeans-webskin1、项目介绍ApacheNetBeansMavenSkinforWebsite是一个专为基于Mav
- 推荐文章:探索Apache NetBeans —— 开源社区的全能网页构建伙伴
任澄翊
推荐文章:探索ApacheNetBeans——开源社区的全能网页构建伙伴netbeans-websiteApacheNetBeansWebsite项目地址:https://gitcode.com/gh_mirrors/ne/netbeans-website项目介绍在这个快速发展的数字化时代,开发高效、互动性强的网站是每个技术团队的核心任务。ApacheNetBeans作为一款久负盛名的集成开发环境
- 推荐文章:探索Apache NetBeans的魔法——Maven插件架构助您高效开发
余印榕
推荐文章:探索ApacheNetBeans的魔法——Maven插件架构助您高效开发netbeans-mavenutils-archetype-nbm-archetypeApacheNetBeansMavenUtilsArchetypeNBMSuiteRoot是一个用于创建ApacheNetBeans模块套件的Maven插件。它可以帮助开发者快速生成一个基于NetBeans的模块套件项目,包括基本的
- Spring Boot 高级开发指南:全面掌握微服务架构的关键技术
IT古董
JAVA架构springboot微服务
SpringBoot是现代Java开发的主流框架,尤其在构建微服务架构时,它提供了丰富的工具与功能,帮助开发者快速构建高效、健壮的系统。本文将围绕13个关键的高级概念展开,逐一分析SpringBoot在微服务开发中的核心技术,包括配置与属性管理、Bean生命周期与作用域、国际化、缓存、部署运维、弹性微服务、分布式事务等,配合实际代码与案例,帮助开发者深入理解和应用SpringBoot。1.配置与属
- 为什么不推荐在Spring Boot中使用@Value加载配置
java后端
@Value注解相信很多SpringBoot的开发者都已经有接触了,通过使用该注解,我们可以快速的把配置信息加载到Spring的Bean中。比如下面这样,就可以轻松的把配置文件中key为com.didispace.title配置信息加载到TestService中来使用@ServicepublicclassTestService{@Value("${com.didispace.title}")pri
- 使用 @NoRepositoryBean 简化数据库访问
java后端
在SpringDataJPA应用程序中管理跨多个存储库接口的数据库访问逻辑可能会变得乏味且容易出错。开发人员经常发现自己为常见查询和方法重复代码,从而导致维护挑战和代码冗余。幸运的是,SpringDataJPA为这个问题提供了一个强大的解决方案:@NoRepositoryBean注解。在本文中,我们将探讨@NoRepositoryBean如何允许我们在超级接口中定义通用查询和方法,然后可以由所有基
- 【微服务】spring 循环依赖问题深入解析
逆风飞翔的小叔
精通springboot微服务spring循环依赖spring循环依赖解决spring循环依赖问题spring如何解决循环依赖spring循环依赖
目录一、循环依赖概述1.1什么是循环依赖1.2spring中的循环依赖二、循环依赖问题模拟2.1循环依赖代码演示2.2问题分析与解决2.2.1使用反射+中间容器三、spring循环依赖问题原理解析3.1spring中的依赖注入3.1.1field属性注入3.1.2setter方法注入3.1.3构造器注入3.2spring中不同的循环依赖解决方案3.2.1spring中bean的生命周期3.2.2循
- activiti 自动完成第一个任务
杨过姑父
springjava后端
有时候后我们开启一个流程实例的时候需要将第一个任务自动完成例如:我们开启一个请假申请,需要自动将提交请假申请的任务完成,自动跳到下一个审批任务通过监听器完成:监听器类型选择:delegateExpression表示将监听器的请求委托给spring容器中的一个实例${priceEvaluationListener}用来指定要委托的springbean的名字,例如@Slf4j@Componentpub
- Java个人技术知识点总结(业务场景篇)
撸码到无法自拔
业务场景篇Spring的概述Spring是完全面向接口的设计,降低程序耦合性,主要是事务控制并创建bean实例对象。在ssh整合时,充当黏合剂的作用。IOC(InversionofControl)控制反转/依赖注入,又称DI(DependencyInjection)(依赖注入)IOC的作用:产生对象实例,所以它是基于工厂设计模式的SpringIOC的注入通过属性进行注入,通过构造函数进行注入,注入
- 同时上3种手段,保障Quartz不重复执行任务
软件工程师文艺
J2EE编辑器前端
Quartz是Java比较流行的定时任务框架,使用定时任务最烦的是不受控制的多线程,定时任务被重复执行。如何控制Quartz让定时任务不被重复执行呢?总结了3中方法和大家分享。1.##修改Quartz的默认线程数,从默认10个线程改为1个线程。配置如下:schedulerFactoryBean添加属性:configLocation。quartz.properties在Quartz.jar包中拷贝。
- Spring整合Mybatis流程(采用注解+log4j日志)
nvjdn__
springmybatislog4j
1.配置pom.xml文件jar包5.3.103.5.72.0.6UTF-888junitjunit4.11testorg.springframeworkspring-beans${spring.version}org.springframeworkspring-core${spring.version}org.springframeworkspring-context${spring.versi
- Nacos统一配置管理
Annaday
Springspringcloud
Nacos统一配置管理将一部分配置信息写到Nacos配置文件中,可以统一管理,并且这个文件支持热加载。新建配置步骤:配置管理->配置列表->新建配置DataID(配置文件名id)命名规范:服务名称-dev(profile运行环境).yamlGroup(分组):DEFAULT_GROUP原先后端启动的步骤是:项目启动读取本地配置application.yml创建spring容器加载bean现在要从N
- Java EE 企业级应用开发教程 第2版
kk8_
java-eejavaspring
JavaEE企业级应用开发教程第2版Spring介绍概述分层的Java一站式轻量级开源框架控制反转(IoC)面向切面编程(AOP)优点非侵入式设计降低耦合性,方便开发支持AOP编程支持声明式事务方便程序测试方便集成各种框架降低JavaEEAPI的使用难度体系结构核心容器Bean,Core,Context,SpEL数据访问及集成JDBC,ORM,OXM,JMS,TransactionsWebWebS
- python 类型标注-typing --- 类型标注支持 — Python 3.7.9 文档
weixin_39892481
类,函数和修饰器.¶这个模块定义了如下的类,模块和修饰器.classtyping.TypeVar¶类型变量用法:T=TypeVar("T")#CanbeanythingA=TypeVar("A",str,bytes)#MustbestrorbytesTypevariablesexistprimarilyforthebenefitofstatictypecheckers.Theyserveasthe
- springboot配置文件与注解
xiaobai_cpp
javaspringboot后端java
文章目录配置注解@SpringBootApplication:@Configuration@EnableAutoConfiguration:@ComponentScan:@Value:@ConfigurationProperties:@PropertySource:@Conditional及其派生注解(如@ConditionalOnClass、@ConditionalOnBean等):配置注解
- 获取java类中的属性注释
小时候的阳光
javajava类注释属性注释tools.jar代码注释
一般我们的某个数据库表对象model,javabean对象如下:packagecom.xxx.message.model;importcom.middol.common.model.BaseModel;importlombok.Data;importlombok.EqualsAndHashCode;importjavax.persistence.Column;importjavax.persist
- 查看spring bean 注入来源
弹唱Tan
java语言
项目里注入了一个bean,到处搜索都不知道是哪里注入的,最后找到下面的方法来排查在注入处,打断点如图:要查看scheduler是哪里注入的,就在这里打断点。2.进入断点后,点击堆栈中的getBean方法,输入类名,获取beanName3.查看是哪里注入的
- 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的表,其有一