couchdb java 连接_CouchDB客户端开发—Java版

在Fedora上安装CouchDB:

yum update

yum install couchdb

修改/etc/couchdb下local.ini文件:

port = 5984

bind_address = 0.0.0.0

启动couchdb:

/etc/init.d/couchdb start

重启couchdb:

/etc/init.d/couchdb restart

关闭couchdb:

/etc/init.d/couchdb stop

开机自动启动:

chkconfig couchdb on

其他资料:

使用Java访问CouchDB:

Jar包:

/CouchDB/commons-io-2.1.jar

/CouchDB/commons-logging-1.1.1.jar

/CouchDB/httpclient-4.1.2.jar

/CouchDB/httpclient-cache-4.1.2.jar

/CouchDB/httpcore-4.1.2.jar

/CouchDB/jackson-core-asl-1.9.4.jar

/CouchDB/jackson-mapper-asl-1.9.4.jar

/CouchDB/org.ektorp-1.2.2.jar

/CouchDB/slf4j-api-1.6.1.jar

/CouchDB/spring-2.5.6.jar

测试代码:

package com.couchdb;

import java.net.MalformedURLException;

import org.ektorp.CouchDbConnector;

import org.ektorp.CouchDbInstance;

import org.ektorp.http.HttpClient;

import org.ektorp.http.StdHttpClient;

import org.ektorp.impl.StdCouchDbConnector;

import org.ektorp.impl.StdCouchDbInstance;

public class CouchDBTest {

public static void main(String[] args) throws MalformedURLException {

HttpClient httpClient = new StdHttpClient.Builder().url("http://192.168.11.124:5984").build();

CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);

CouchDbConnector db = new StdCouchDbConnector("mydatabase", dbInstance);

db.createDatabaseIfNotExists();

Sofa sofa = db.get(Sofa.class, "id_1");

if(sofa != null) db.delete(sofa);

sofa = new Sofa();

sofa.setId("id_1");

sofa.setColor("red");

db.create(sofa);

Sofa tmpSofa = db.get(Sofa.class, "id_1");

System.out.println(tmpSofa.getRevision() + " : " + tmpSofa.getColor());

tmpSofa.setColor("blue");

db.update(tmpSofa);

tmpSofa = db.get(Sofa.class, "id_1");

System.out.println(tmpSofa.getRevision() + " : " + tmpSofa.getColor());

}

}

整理后编写如下:

@Configurationpublic classCouchDBTemplate {

@Value("${fabric.couchdb.host}")privateString couchDBHost;

@Value("${fabric.couchdb.database}")privateString databaseName;public CouchDbConnector getCouchDbConnector() throwsMalformedURLException {

HttpClient httpClient= newStdHttpClient.Builder().url(couchDBHost).build();

CouchDbInstance dbInstance= newStdCouchDbInstance(httpClient);

CouchDbConnector db= newStdCouchDbConnector(databaseName, dbInstance);

db.createDatabaseIfNotExists();returndb;

}

}

@Servicepublic class CouchDBServiceImpl implementsCouchDBService {

@AutowiredprivateCouchDBTemplate couchDBTemplate;

@Overridepublic void test() throwsMalformedURLException {

CouchDbConnector db=couchDBTemplate.getCouchDbConnector();

Sofa sofa= db.get(Sofa.class, "0x789456123");

System.out.println(JSONObject.toJSON(sofa));

}

@Overridepublic Long getEvidenceSum() throwsMalformedURLException {

CouchDbConnector db=couchDBTemplate.getCouchDbConnector();

Long cc=db.getDbInfo().getDocCount();returncc;

}

}

public classSofa {

@JsonProperty(value= "_id")privateString id;

@JsonProperty(value= "_rev")privateString rev;privateString address;privateString createTime;privateString hash;privateString name;privateString recordNumber;privateString source;privateString user;

@JsonProperty(value= "~version")privateString version;publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}publicString getRev() {returnrev;

}public voidsetRev(String rev) {this.rev =rev;

}publicString getAddress() {returnaddress;

}public voidsetAddress(String address) {this.address =address;

}publicString getCreateTime() {returncreateTime;

}public voidsetCreateTime(String createTime) {this.createTime =createTime;

}publicString getHash() {returnhash;

}public voidsetHash(String hash) {this.hash =hash;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getRecordNumber() {returnrecordNumber;

}public voidsetRecordNumber(String recordNumber) {this.recordNumber =recordNumber;

}publicString getSource() {returnsource;

}public voidsetSource(String source) {this.source =source;

}publicString getUser() {returnuser;

}public voidsetUser(String user) {this.user =user;

}publicString getVersion() {returnversion;

}public voidsetVersion(String version) {this.version =version;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

稳定性保障6步走:高可用系统大促作战指南!

简介: 年年有大促,大家对于大促稳定性保障这个词都不陌生,业务场景尽管各不相同,“套路”往往殊路同归,全链路压测、容量评估、限流、紧急预案等,来来去去总少不了那么几板斧。跳出这些“套路”&#xff0c…

观测云品牌正式亮相,携手通信院共推国内可观测性概念与技术发展!

2021年9月17日,由中国信息通信研究院、中国通信标准化协会联合主办的“2021 OSCAR 开源产业大会”在北京中关村拉开序幕。会上正式发布了《开源治理标准与评估结果》《开源法则》等多项重要成果,而由通信院主导、驻云科技参与制定的《中国可观测性标准》…

闲鱼如何建设技术舆情治理体系 (多图多代码)

简介: 从日志、监控、性能检测几个方面建设了有日志可查、有数据可依的排查体系 现状和问题 闲鱼的舆情治理,依托阿里集团的设施建设,有以下能力: 崩溃异常、性能在线聚合查询;本地日志:TLog;在…

java 读文件 优化_Java读取文件性能优化程序代码

读取文件就是对代码与算法上进行了一些细节上的修改了,下文我们来看一段java读取文件性能优化的例子。在执行IO时,Java的InputStream被广泛使用,比如DataInputStream.readInt等等。事实上,这些高度封装的接口奇慢无比。我有一个项…

全球企业KVM开源贡献榜发布,腾讯云、华为、阿里巴巴等入围

9月16日晚,在全球虚拟化顶级技术峰会 KVM Forum 上,2021年度全球企业 KVM 开源贡献榜正式发布,华为、腾讯云、阿里巴巴等中国公司纷纷入围。其中,腾讯云更是连续第五年入围,成为唯一取得这一成就的中国企业。 据了解&a…

使用MQTT与函数计算做热力图的实践

简介: 在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTTFCAPI Gateway的方式参考优化来实现。 前言 最近几年,我们在一些商场、图书馆、机场或港口环境里,经常可以看到一些机器人在转…

Google 宣布推出隐私计算核心服务;Amazon Managed Grafana正式可用……

NEWS本周新闻回顾Google 宣布推出隐私计算核心服务今年 5 月 Google I/O 开发者大会发布 Android 12 的同时,宣布了隐私计算核心(Private Compute Core)。这是一项开源计划,提供了一个沙盒式的安全环境,将智能回复、实…

java instance变量_java 类方法和实例方法 以及 类变量和实例变量

类体中的方法分为实例方法和类方法两种,用static修饰的是类方法类方法:对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。类方…

谈身份管理之基础篇 - 保障云上安全,从[规范账号使用]开始

简介: 身份和密钥的管理,是企业上云的重中之重;每年国内外都有因为身份和密钥的管理不善,或泄露,或误操作导致严重的生产事故或者数据泄露。本期小编将重点聊聊云上身份的那些值得关注的事儿。 引言 2021年初&#xf…

开课啦 dubbo-go 微服务升级实战

简介: 杭州开课啦教育科技有限公司是一家致力于为中小学生提供学习辅导的在线教育公司,目前公司后端服务基础设施主要依托于阿里云原生,其中包含计算、网络、存储以及 Kubernetes 服务。 技术选型背景 2020 年是开课啦公司发展壮大的一年&am…

gui界面设计心得体会 python_Python笔记-GUI界面设计(tkinter)

文章目录前言相关介绍一、函数方法介绍二、导入tkinter库三、窗口[1]. 创建[2]. 设置标题[3]. 设置大小[4]. 设置背景色[5]. 删除窗口四、按钮[1]. 创建[2]. 放置按钮(绝对位置)[3]. 放置按钮(相对位置)[4]. 代码五、单行文本[1]. 创建[2]. 代码前言此篇文章介绍的是有关图形用…

阿里云科技驱动“数字化转型”,助力中小企业发展“突围”

2020年至2021年的新冠疫情, 让全世界进入了困难模式,国家的经济运行不得不放缓脚步。这不仅给每个人造成了很多不便,更是给人们所依赖的企业组织,造成了巨大的影响。每一个微观个体所感受的只是自己身边肉眼可见的影响&#xff0c…

这些中秋礼盒绝了,悄悄惊艳互联网人

整理 | 王晓曼出品 | 程序人生 (ID:coder _life)来了来了它们来了,2021年腾讯、阿里、百度、字节等诸多互联网大厂带着他们的中秋礼盒来了!“八月十五月儿圆,中秋月饼香又甜”,没有月饼的中秋节…

想成为全栈工程师,要做到哪几点?

简介: 如何成为一名全栈工程师?需要具备哪些技术积累?成为全栈工程师有哪些好处?希望本文能为期望成为全栈工程师的同学提供一点帮助,和同学们一起分享交流。 作为开发者,我们不过度区分服务端 server 客户…

DDD as Code:如何用代码诠释领域驱动设计?

简介: 相较于常规的MVC架构,DDD更抽象、更难以理解,各个开发者对DDD的解释也不尽相同。那么哪种设计方式才更好?在学习时如何知道哪种DDD更正统,没有被别人带歪?本文尝试使用“DDD as Code”的概念&#xf…

谈身份管理之进阶篇 - 快速了解从管理到治理的最佳方案

简介: 云上身份安全是当今企业管理者和云上运维团队所面临的挑战之一,针对云上身份管理不全面所产生的风险究竟又哪些?又应当如何应对?本文将结合案例和最佳实践与您分享。 引言 云上身份安全是当今企业管理者和云上运维团队所面…

java替换花括号,用正则表达式替换Java中的大括号{}之间的所有文本

I have a long string with numerous occurences of text between { } that I would like to remove however when I do this:data data.replaceAll("{(.*?)}", "");i get an error, so what am I doing wrong / how should I go about doing this?解决…

报名倒计时 | TeaTalk 深圳站邀您共话安全云世界

对越发复杂的网络环境,保障网络安全势不可挡,为此国家也对应颁布了系列规章政策。除相关政策外,网络安全及云安全也同时被列入国家规划重点发展方向,随着“十三五”规划逐渐落实,“十四五”规划制定实施,推…

KubeNode:阿里巴巴云原生 容器基础设施运维实践

简介: 目前 KubeNode 已经覆盖了阿里巴巴集团的所有的 ASI 集群,接下来,将随着阿里巴巴集团“统一资源池”的项目,推进 KubeNode 覆盖更大的范围、更多的场景,让云原生的容器基础设施运维架构发挥更大的价值。 阿里巴巴…

lnmp yum安装mysql_centos5 yum安装lnmp

之所以转载这篇文章,是因为咱们如果一直使用军歌的编译安装包的话,那么时间上浪费不少(性能优秀的vps都至少需要17分钟安装lnmp.org的lnmp),因此阿福极力推荐使用yum安装。YUM安装特点:比编译安装速度快安全,yum安装是…