- HiveMetastore 的架构简析
houzhizhen
hivehive
HiveMetastore的架构简析HiveMetastore是Hive元数据管理的服务。可以把元数据存储在数据库中。对外通过api访问。hive_metastore.thrift对外提供的Thrift接口定义在文件standalone-metastore/src/main/thrift/hive_metastore.thrift中。内容包括用到的结构体和枚举,和常量,和rpcService。如分
- Hive与Spark的UDF:数据处理利器的对比与实践
窝窝和牛牛
hivesparkhadoop
文章目录Hive与Spark的UDF:数据处理利器的对比与实践一、UDF概述二、HiveUDF解析实现原理代码示例业务应用三、SparkUDF剖析-JDBC方式使用SparkThriftServer设置通过JDBC使用UDFSparkUDF的Java实现(用于JDBC方式)通过beeline客户端连接使用业务应用场景四、Hive与SparkUDF在JDBC模式下的对比五、实际部署与最佳实践六、总结
- 如何自定义协议
kshzhaohui
后端java
前言何为自定义协议,其实是相对标准协议来说的,这里主要针对的是应用层协议;常见的标准的应用层协议如http、ftp、smtp等,如果我们在网络通信的过程中不去使用这些标准协议,那就需要自定义协议,比如我们常用的RPC框架(dubbo,thrift),分布式缓存(redis,memcached)等都是自定义协议;本文就来讲讲如何去自定义私有协议,在此之前我们先考虑一下为什么要自定义协议。为什么要自定
- thrift软件、.thrif文件和thrift协议是什么关系,有什么用
fzip
DorisDoris内部通信协议
Thrift软件、.thrift文件和Thrift协议是ApacheThrift框架的三个核心组成部分,它们协同实现跨语言服务的高效开发与通信。以下是三者关系及作用的详细解析:一、核心组件关系1.Thrift软件(框架)•定位:ApacheThrift是一个跨语言的RPC(远程过程调用)框架,用于不同编程语言编写的服务之间的通信。•功能:•提供IDL(接口定义语言)编译器,将.thrift文件转换
- 【大数据分析】Spark SQL查询:使用SQL命令
sword_csdn
Sparkspark数据分析sql
对于使用关系型数据库或分布式数据库的用户可能更容易和更自然地使用SQL,比如Hive。在SparkSQL编写SQL命令时,它们将被转换为DataFrame上的操作。通过连接到Spark的Thrift服务器,它们可以通过标准的JDBC或ODBC协议从应用服务器连接到Spark。Spark支持两种SQL方言:SQL和HQL。Spark社区推荐的是HQL,因为HQL具有更丰富的功能。要使用HQL,需要使
- maven插件学习(maven-shade-plugin和maven-antrun-plugin插件)
catcher92
javamavenmaven学习大数据
整合spark3.3.x和hive2.1.1-cdh6.3.2碰到个问题,就是spark官方支持的hive是2.3.x,但是cdh中的hive确是2.1.x的,项目中又计划用spark-thrift-server,导致编译过程中有部分报错。其中OperationLog这个类在hive2.3中新增加了几个方法,导致编译报错。这个时候有两种解决办法:修改spark源码,注释掉调用OperationLo
- java获取hive表所有字段,Hive Sql从表中动态获取空列计数
拾亿年
java获取hive表所有字段
我正在使用datastaxspark集成和sparkSQLthrift服务器,它为我提供了一个HiveSQL接口来查询Cassandra中的表.我的数据库中的表是动态创建的,我想要做的是仅根据表名在表的每列中获取空值的计数.我可以使用describedatabase.table获取列名,但在hiveSQL中,如何在另一个为所有列计数null的select查询中使用其输出.更新1:使用Dudu的解决
- 【TTransportException: java.net.SocketException: Broken pipe (Write failed))】
WSSWWWSSW
大数据java.netmybatishive
@[TOC](org.apache.thrift.transport.TTransportException:java.net.SocketException:Brokenpipe(Writefailed))Errorqueryingdatabase.Cause:java.sql.SQLException:org.apache.thrift.transport.TTransportExceptio
- 讲解一下SpringBoot的RPC连接
陈老师还在写代码
SpringBoot100问springbootrpc后端
SpringBoot本身并不直接提供RPC(RemoteProcedureCall,远程过程调用)功能,但可以通过集成其他框架或库来实现RPC通信。常见的RPC框架包括Dubbo、gRPC、Thrift、SpringCloud等。下面我将讲解如何在SpringBoot中集成和使用这些RPC框架。1.使用Dubbo实现RPCDubbo是阿里巴巴开源的一个高性能RPC框架,广泛应用于分布式系统中。Sp
- Ranger Hive Service连接测试失败问题解决
一张假钞
hivehadoop数据仓库
个人博客地址:RangerHiveService连接测试失败问题解决|一张假钞的真实世界异常信息如下:org.apache.ranger.plugin.client.HadoopException:UnabletoconnecttoHiveThriftServerinstance..UnabletoconnecttoHiveThriftServerinstance..Couldnotopencli
- python操作hbase创建表(一)
金融小白数据分析之路
大数据hbasepython数据库
python通过thrift来操作hbase在开发环境安装python库pipinstallthriftpipinstallhbase-thrifthbase中需要开启hbase-daemon.shstartthrifthadoop、hbse、Zookeeper都需要开启fromhbaseimportHbasefromthrift.transportimportTSocketfromhbase.t
- Workerman-Thrift 使用教程
沈韬淼Beryl
Workerman-Thrift使用教程workerman-thriftThriftRPCforphpbasedonworkerman.项目地址:https://gitcode.com/gh_mirrors/wo/workerman-thrift1、项目介绍Workerman-Thrift是一个基于Workerman的高性能PHPThriftRPC框架。Workerman是一个高性能的PHPsoc
- python操作HBase
王壮_
大数据Pythonhbase数据库大数据
1.安装happybase和thriftpipinstallhappybasepipinstallthrift2.启动hbase的thrift进程,并指定端口9090hbase-daemon.shstartthrift-p90903.操作HBaseimporthappybaseconnection=happybase.Connection(host='hadoop10',port=9090)tab
- 百万架构师第二十八课:RMI :分布式通讯框架RMI的原理|JavaGuide
后端
20180602-分布式通讯框架RMI的原理.mdTOC[TOC]什么是RPCRPC框架原理了解JavaRMI基于RMI时间RMI通讯原理分析实现自己的RPC框架什么是RPCRemoteprocedurecall远程过程调用集中式到分布式RMI(JRMP)/soap(webservice/axis/cxf)thrift/grpc/dubboRPC框架的不断演进,基于TCP/IP协议之上封装了特定的
- `计算机知识` 租云服务器, Docker
supimo
计算机知识服务器运维docker
catalog云服务器Docker阿里云重载系统创建用户配置免密登录安装tmux安装DockerDocker命令配置统一镜像docker容器配置云服务器云平台的作用存放docket容器,让运算操作运行在云端获得一个公网IP,让别人可以访问云服务器的分类1,毛坯,即这个服务器是NULL的,然后我们自定义的去配置.比如一些项目框架django,thrift,是使用这种2,现成,比如数据库db,不用我们
- thrift RPC调用性能对比
飞稀饭你的微笑
1.测试环境CPU:IntelE5-26402.50GHz(8cores)内存:16GBCentOS6.5,Go1.4、Gcc4.4.6,开启tcpreuse,tcprecycle;2.测试数据对比如下一、单进程下,长短连接,两个RPC框架和两大语言对比二二.多进程(线程,协程)下,两大RPC框架和两大语言对比总结:1)Thrift框架性能比gRPC框架快两倍以上;2)高并发场景下,使用Thrif
- python利用pyhive 连接hive
Leonban
《Python基础知识》pythonhive大数据
1.下载需求包pipinstallsaslpipinstallthriftpipinstallthrift-saslpipinstallPyHive2.连接hive注意端口默认为10000frompyhiveimporthiveconn=hive.Connection(host='192.168.100.100',port=10000,username='root',database='defau
- python连接hive--Pyhive
Elvis_hui
hivehivepythonsql
Pyhive安装包pipinstallsaslpipinstallthriftpipinstallthrift-saslpipinstallPyHive#安装对应的包sasl可能会报错#下载sasl文件sasl下载执行语句第一种frompyhiveimporthivedefselect_pyhive(sql):#创建hive连接conn=hive.Connection(host='##',port
- Spark-第六周
fightingD&W
Sparkspark大数据分布式
1.sparksql运行流程【Spark精讲】一文讲透SparkSQL执行过程_sparksql执行过程-CSDN博客摸鱼大数据——SparkSQL——SparkSQL的运行机制-CSDN博客2.熟练使用thriftserver服务thriftserver和beeline的使用,代码连接server(连接hive)_thrift连接hive-CSDN博客【八】thriftserver和beelin
- 从零开始基于go-thrift创建一个RPC服务
weixin_30371875
golangphpjson
Thrift是一种被广泛使用的rpc框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用。为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后续维护成本。Thrift开发流程是:先定义IDL,使用thrift工具生成目标语言接口(interface)代码,然后进行开发。官网:http://thrift.apache.org/github:http
- 大规模时序数据存储(三)| 核心功能设计
AIOPstack
作者简介运小尧百度高级研发工程师一、简介基本功能方面,我们的TSDB在数据的收集上提供了HTTP、Thrift等API;对查询,除了提供API之外还提供了命令行工具(CLITool),这些基本功能的设计在不同的TSDB中大同小异,因此本文不再赘述。由于数据规模庞大且出于业务数据隔离和定期清理的需要,我们设计了分库分表功能;为了提升历史数据存储和查询效率,同时节省存储成本,我们又设计了多级降采样功能
- spark CTAS nuion all (union all的个数很多)导致超过spark.driver.maxResultSize配置(2G)
鸿乃江边鸟
背景该sql运行在spark版本3.1.2下的thriftserver下现象在运行包含多个union的sparksql的时候报错(该sql包含了50多个uinon,且每个union字查询中会包含join操作),其中union中子查询sql类似如下:SELECTa1.order_no,a1.need_column,a1.join_idFROMtemp.actul_aa1jointemp.actul_
- 微服务(四)
Jiandong
服务发现这是第四章,这本书是关于用微服务构建应用。第一章介绍了微服务架构模式和讨论了采用微服务的优缺点。第二章和第三章描述了微服务之间通讯的各个方面。本章,我们探索服务发现相关的问题。为什么要用服务发现?让我们想象一下你正在写一些代码通过RESTAPI或ThriftAPI调用一个服务。为了发起一个请求,你的代码需要知道这个服务实例的网络地址(IP地址和端口号)。运行在物理机上的传统应用,服务实例的
- Java原生序列化和Kryo序列化性能比较
编码前线
1.背景最近几年,各种新的高效序列化方式层出不穷,不断刷新序列化性能的上限,最典型的包括:专门针对Java语言的:Kryo,FST等等跨语言的:Protostuff,ProtoBuf,Thrift,Avro,MsgPack等等这些序列化方式的性能多数都显著优于hessian2(。有鉴于此,我们为dubbo引入Kryo和FST这两种高效Java序列化实现,来逐步取代hessian2。其中,Kryo是
- 接口自动化测试,完整入门篇
.咖啡加剁椒
软件测试功能测试软件测试自动化测试程序人生职场和发展
目录1.什么是接口测试2.基本流程3.需求分析4.用例设计5.脚本开发6.结果分析7.完整脚本8.参考资料1.什么是接口测试顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主要分为功能测试,性能测试,稳定性测试,安全性测试等。在
- Spark 使用之操作Hudi表
AlienPaul
HudiSpark使用本篇为大家带来通过Sparkshell和SparkSQL操作Hudi表的方式。Hudi表还可以通过SparkThriftServer操作,参见通过Sparkthriftserver操作Hudi表。Hudi编译我们使用如下软件环境:Scala2.12Flink1.15Spark3.3Hudi0.13.1Hudi编译的时候会遇到依赖下载缓慢的情况。需要换用国内源。修改settin
- rpc协议中,字段值类型改变的思考
赤子心_d709
背景今天遇到了一个场景,下游强行把某个字段的类型给改了(字段顺序没有变),上线的过程中上下游都没有出错,和我预想的不一样,我认为上游反序列化解析的时候会出错python语言,thrift协议当然这样的做法不推荐,这里只说明一下上游没有报错的原因代码框架上:用的是thrift,当然是公司封装了一层,对于我rpcclient,也就是上游,影响的代码如下eliffid==11:ifftype==TTyp
- c# 访问hbase_【C#】透过Thrift操作HBase系列
weixin_39946500
c#访问hbase
题外话:C#调用Java的几种方法1.将Java端的接口通过WebService方式发布,C#可以方便的调用2.先使用C++通过JNI调用Java,C#调用C++的接口3.使用开源的库直接使用C#调用Java,详细信息请点击4.使用IKVM实现C#调用Java,参考:http://www.ikvm.net/之所以说这些,是因为自己这边客户端要调用HBase接口(Java实现),刚开始我是使用WS方
- thrift协议抓包解析(tcpdump+wireshark or thrift-tool)
struggle6688
常用技术
目前thrift使用较多,所以我们可能会遇到线上查case或者想拉取一些具体请求的场景,这种需求下如果没有提前打日志就只能通过抓包来分析了。一、tcpdump+wireshark抓包第一反应就是通过tcpdump命令来抓取,其中比较常用的命令就是sudotcpdump-iany-Xvvdstport11311andtcp这种情况下的包通常都是二进制的格式,通过-Xvv也就能展现成这个样子:当然我们
- Wireshark不显示Thrift协议
cuijiecheng2018
网络/服务器wireshark网络
使用Wireshark对thrift协议进行抓包,但是只显示了传输层的tcp协议:"右键"->"DecodeAs"选择thrift的tcp端口将“当前”修改为Thrift,然后点击“确定”设置后,可以发现Wireshark里面显示的协议从Tcp变为Thrift了参考:《thrift协议抓包解析(tcpdump+wiresharkorthrift-tool)》《pinterest/thrift-to
- 关于旗正规则引擎规则中的上传和下载问题
何必如此
文件下载压缩jsp文件上传
文件的上传下载都是数据流的输入输出,大致流程都是一样的。
一、文件打包下载
1.文件写入压缩包
string mainPath="D:\upload\"; 下载路径
string tmpfileName=jar.zip; &n
- 【Spark九十九】Spark Streaming的batch interval时间内的数据流转源码分析
bit1129
Stream
以如下代码为例(SocketInputDStream):
Spark Streaming从Socket读取数据的代码是在SocketReceiver的receive方法中,撇开异常情况不谈(Receiver有重连机制,restart方法,默认情况下在Receiver挂了之后,间隔两秒钟重新建立Socket连接),读取到的数据通过调用store(textRead)方法进行存储。数据
- spark master web ui 端口8080被占用解决方法
daizj
8080端口占用sparkmaster web ui
spark master web ui 默认端口为8080,当系统有其它程序也在使用该接口时,启动master时也不会报错,spark自己会改用其它端口,自动端口号加1,但为了可以控制到指定的端口,我们可以自行设置,修改方法:
1、cd SPARK_HOME/sbin
2、vi start-master.sh
3、定位到下面部分
- oracle_执行计划_谓词信息和数据获取
周凡杨
oracle执行计划
oracle_执行计划_谓词信息和数据获取(上)
一:简要说明
在查看执行计划的信息中,经常会看到两个谓词filter和access,它们的区别是什么,理解了这两个词对我们解读Oracle的执行计划信息会有所帮助。
简单说,执行计划如果显示是access,就表示这个谓词条件的值将会影响数据的访问路径(表还是索引),而filter表示谓词条件的值并不会影响数据访问路径,只起到
- spring中datasource配置
g21121
dataSource
datasource配置有很多种,我介绍的一种是采用c3p0的,它的百科地址是:
http://baike.baidu.com/view/920062.htm
<!-- spring加载资源文件 -->
<bean name="propertiesConfig"
class="org.springframework.b
- web报表工具FineReport使用中遇到的常见报错及解决办法(三)
老A不折腾
finereportFAQ报表软件
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、repeated column width is largerthan paper width:
这个看这段话应该是很好理解的。比如做的模板页面宽度只能放
- mysql 用户管理
墙头上一根草
linuxmysqluser
1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'jeecn’,password(‘jeecn’));//刷新系统权限表mysql>flush privileges;这样就创建了一个名为:
- 关于使用Spring导致c3p0数据库死锁问题
aijuans
springSpring 入门Spring 实例Spring3Spring 教程
这个问题我实在是为整个 springsource 的员工蒙羞
如果大家使用 spring 控制事务,使用 Open Session In View 模式,
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.
- 百度词库联想
annan211
百度
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RunJS</title&g
- int数据与byte之间的相互转换实现代码
百合不是茶
位移int转bytebyte转int基本数据类型的实现
在BMP文件和文件压缩时需要用到的int与byte转换,现将理解的贴出来;
主要是要理解;位移等概念 http://baihe747.iteye.com/blog/2078029
int转byte;
byte转int;
/**
* 字节转成int,int转成字节
* @author Administrator
*
- 简单模拟实现数据库连接池
bijian1013
javathreadjava多线程简单模拟实现数据库连接池
简单模拟实现数据库连接池
实例1:
package com.bijian.thread;
public class DB {
//private static final int MAX_COUNT = 10;
private static final DB instance = new DB();
private int count = 0;
private i
- 一种基于Weblogic容器的鉴权设计
bijian1013
javaweblogic
服务器对请求的鉴权可以在请求头中加Authorization之类的key,将用户名、密码保存到此key对应的value中,当然对于用户名、密码这种高机密的信息,应该对其进行加砂加密等,最简单的方法如下:
String vuser_id = "weblogic";
String vuse
- 【RPC框架Hessian二】Hessian 对象序列化和反序列化
bit1129
hessian
任何一个对象从一个JVM传输到另一个JVM,都要经过序列化为二进制数据(或者字符串等其他格式,比如JSON),然后在反序列化为Java对象,这最后都是通过二进制的数据在不同的JVM之间传输(一般是通过Socket和二进制的数据传输),本文定义一个比较符合工作中。
1. 定义三个POJO
Person类
package com.tom.hes
- 【Hadoop十四】Hadoop提供的脚本的功能
bit1129
hadoop
1. hadoop-daemon.sh
1.1 启动HDFS
./hadoop-daemon.sh start namenode
./hadoop-daemon.sh start datanode
通过这种逐步启动的方式,比start-all.sh方式少了一个SecondaryNameNode进程,这不影响Hadoop的使用,其实在 Hadoop2.0中,SecondaryNa
- 中国互联网走在“灰度”上
ronin47
管理 灰度
中国互联网走在“灰度”上(转)
文/孕峰
第一次听说灰度这个词,是任正非说新型管理者所需要的素质。第二次听说是来自马化腾。似乎其他人包括马云也用不同的语言说过类似的意思。
灰度这个词所包含的意义和视野是广远的。要理解这个词,可能同样要用“灰度”的心态。灰度的反面,是规规矩矩,清清楚楚,泾渭分明,严谨条理,是决不妥协,不转弯,认死理。黑白分明不是灰度,像彩虹那样
- java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
bylijinnan
java
public class PrintMatrixClockwisely {
/**
* Q51.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
1 2 3 4
5 6 7 8
9
- mongoDB 用户管理
开窍的石头
mongoDB用户管理
1:添加用户
第一次设置用户需要进入admin数据库下设置超级用户(use admin)
db.addUsr({user:'useName',pwd:'111111',roles:[readWrite,dbAdmin]});
第一个参数用户的名字
第二个参数
- [游戏与生活]玩暗黑破坏神3的一些问题
comsci
生活
暗黑破坏神3是有史以来最让人激动的游戏。。。。但是有几个问题需要我们注意
玩这个游戏的时间,每天不要超过一个小时,且每次玩游戏最好在白天
结束游戏之后,最好在太阳下面来晒一下身上的暗黑气息,让自己恢复人的生气
&nb
- java 二维数组如何存入数据库
cuiyadll
java
using System;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace WindowsFormsApplication1
{
- 本地事务和全局事务Local Transaction and Global Transaction(JTA)
darrenzhu
javaspringlocalglobaltransaction
Configuring Spring and JTA without full Java EE
http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/
Spring doc -Transaction Management
http://docs.spring.io/spri
- Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
dcj3sjt126com
linuxalias
用途说明
设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问 题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常 用的长命令行变短,强制执行命令时询问等。
常用参数
格式:alias
格式:ali
- yii2 restful web服务[格式响应]
dcj3sjt126com
PHPyii2
响应格式
当处理一个 RESTful API 请求时, 一个应用程序通常需要如下步骤 来处理响应格式:
确定可能影响响应格式的各种因素, 例如媒介类型, 语言, 版本, 等等。 这个过程也被称为 content negotiation。
资源对象转换为数组, 如在 Resources 部分中所描述的。 通过 [[yii\rest\Serializer]]
- MongoDB索引调优(2)——[十]
eksliang
mongodbMongoDB索引优化
转载请出自出处:http://eksliang.iteye.com/blog/2178555 一、概述
上一篇文档中也说明了,MongoDB的索引几乎与关系型数据库的索引一模一样,优化关系型数据库的技巧通用适合MongoDB,所有这里只讲MongoDB需要注意的地方 二、索引内嵌文档
可以在嵌套文档的键上建立索引,方式与正常
- 当滑动到顶部和底部时,实现Item的分离效果的ListView
gundumw100
android
拉动ListView,Item之间的间距会变大,释放后恢复原样;
package cn.tangdada.tangbang.widget;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import andr
- 程序员用HTML5制作的爱心树表白动画
ini
JavaScriptjqueryWebhtml5css
体验效果:http://keleyi.com/keleyi/phtml/html5/31.htmHTML代码如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="UTF-8" >
<ti
- 预装windows 8 系统GPT模式的ThinkPad T440改装64位 windows 7旗舰版
kakajw
ThinkPad预装改装windows 7windows 8
该教程具有普遍参考性,特别适用于联想的机器,其他品牌机器的处理过程也大同小异。
该教程是个人多次尝试和总结的结果,实用性强,推荐给需要的人!
缘由
小弟最近入手笔记本ThinkPad T440,但是特别不能习惯笔记本出厂预装的Windows 8系统,而且厂商自作聪明地预装了一堆没用的应用软件,消耗不少的系统资源(本本的内存为4G,系统启动完成时,物理内存占用比
- Nginx学习笔记
mcj8089
nginx
一、安装nginx 1、在nginx官方网站下载一个包,下载地址是:
http://nginx.org/download/nginx-1.4.2.tar.gz
2、WinSCP(ftp上传工
- mongodb 聚合查询每天论坛链接点击次数
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 18 */
{
"_id" : ObjectId("5596414cbe4d73a327e50274"),
"msgType" : "text",
"sendTime" : ISODate("2015-07-03T08:01:16.000Z"
- java术语(PO/POJO/VO/BO/DAO/DTO)
Luob.
DAOPOJODTOpoVO BO
PO(persistant object) 持久对象
在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.
VO(value object) 值对象
通
- 算法复杂度
Wuaner
Algorithm
Time Complexity & Big-O:
http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o
http://bigocheatsheet.com/
http://www.sitepoint.com/time-complexity-algorithms/