在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

其他资料:

Fedora: http://library.linode.com/databases/couchdb/fedora-14

Ubuntu: http://www.oschina.net/question/5189_7729

使用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());
}
} 整理后编写如下:
@Configuration
public class CouchDBTemplate { @Value("${fabric.couchdb.host}")
private String couchDBHost; @Value("${fabric.couchdb.database}")
private String databaseName; public CouchDbConnector getCouchDbConnector() throws MalformedURLException { HttpClient httpClient = new StdHttpClient.Builder().url(couchDBHost).build();
CouchDbInstance dbInstance = new StdCouchDbInstance(httpClient);
CouchDbConnector db = new StdCouchDbConnector(databaseName, dbInstance);
db.createDatabaseIfNotExists(); return db; }
}

@Service
public class CouchDBServiceImpl implements CouchDBService { @Autowired
private CouchDBTemplate couchDBTemplate; @Override
public void test() throws MalformedURLException {
CouchDbConnector db = couchDBTemplate.getCouchDbConnector(); Sofa sofa = db.get(Sofa.class, "0x789456123");
System.out.println(JSONObject.toJSON(sofa)); } @Override
public Long getEvidenceSum() throws MalformedURLException {
CouchDbConnector db = couchDBTemplate.getCouchDbConnector(); Long cc =db.getDbInfo().getDocCount(); return cc;
} }
public class Sofa {

    @JsonProperty(value = "_id")
private String id; @JsonProperty(value = "_rev")
private String rev; private String address; private String createTime; private String hash; private String name; private String recordNumber; private String source; private String user; @JsonProperty(value = "~version")
private String version; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getRev() {
return rev;
} public void setRev(String rev) {
this.rev = rev;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public String getCreateTime() {
return createTime;
} public void setCreateTime(String createTime) {
this.createTime = createTime;
} public String getHash() {
return hash;
} public void setHash(String hash) {
this.hash = hash;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getRecordNumber() {
return recordNumber;
} public void setRecordNumber(String recordNumber) {
this.recordNumber = recordNumber;
} public String getSource() {
return source;
} public void setSource(String source) {
this.source = source;
} public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public String getVersion() {
return version;
} public void setVersion(String version) {
this.version = version;
} }

参考 https://www.xuebuyuan.com/2222739.html

CouchDB客户端开发—Java版的更多相关文章

  1. apache kafka系列之客户端开发-java

    1.依赖包 <dependency>            <groupId>org.apache.kafka</groupId>            <a ...

  2. [Tool] csdn客户端开发(非官方版)

    偶尔间看到一篇博客[清山博客]里讲述了他自己开发的一个CSDN博客客户端,并去下载体验了一下,然后就自己手痒也要开发一下 先看看结果图: 在文章列表里,鼠标右键可以操作[置顶.删除.评论权限]: 下面 ...

  3. 微信APP支付服务端开发Java版(一)

    一.准备工作 去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的) https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11 ...

  4. JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图

    简介:本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏.Java实现QQ ...

  5. Wechat4j之Hello world——使用wechat4j快速开发java版微信公众号

    Wechat4j是一个开源的java微信开发框架,是目前最简单易用的java微信开发框架. 项目地址:https://github.com/sword-org/wechat4j Wechat4j.ja ...

  6. 最详细的 paypal 支付接口开发--Java版

    做全球性的支付,选用paypal!为什么选择paypal? 因为paypal是目前全球最大的在线支付工具,就像国内的支付宝一样,是一个基于买卖双方的第三方平台.买家只需知道你的paypal账号,即可在 ...

  7. 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

  8. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  9. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

随机推荐

  1. python中sorted()和set()去重,排序

    前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...

  2. Thanks David's Share

    2019.4.12 Today, we got the invitation letter from US, when we discuss the journey, i saw perfect sh ...

  3. 火狐开发----从头用到尾的cfx

    此教程阐述了如何使用 SDK 开发一个简单的扩展. 准备 要想使用 SDK 开发 Firefox 的扩展,您首先需要 安装并激活 SDK.一旦您完成了以上步骤,您将会看到一个命令行窗口. 初始化一个空 ...

  4. AndroidStudio生成APK注意的几个问题

    生成APK遇到两个问题:一是生成的APK安装失败(没有勾选V1所致),二是生成APK后,百度与谷歌地图不显示(SHA1值改变所致). 通过Build>Generate Signed APK生成A ...

  5. Python网络爬虫入门篇

    1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...

  6. Django视图层

    本文目录 1 视图函数 2 HttpRequest对象 3 HttpResponse对象 4 JsonResponse 5 CBV和FBV 6 简单文件上传 回到目录 1 视图函数 一个视图函数,简称 ...

  7. stm32库函数建工程和使用Keil自带库建工程有没有区别?发现了同样的程序在两种情况下keil自带库可以运行的情况,不知是什么原因

    我使用库函数建的工程(非Keil自带库),为了实现SPI对Si24r1芯片数据的读写,以验证stm32是否可以和si24r1能够正常通信,发现使用库函数建的工程程序不能通过,读出来的数据和写的数据不一 ...

  8. openstack-ntp时间同步服务

    ntp时钟同步服务 NTP 工作请求 (1) 客户端将采用随机端口向 NTP 服务器 (UDP:123) 发出时间同步请求 (2)NTP 服务器收到请求后会将发出调校时间 (3)NTP 客户端接收到 ...

  9. 使用JSR-303进行校验

    package com.ieou.comac.module.web.dto.employee; import lombok.Data; import javax.validation.constrai ...

  10. 使用jQuery修改带有!important 的强制样式

    我们习惯性的会用这种方法进行修改: $(".test").css("width","100px !important"); 但是往往是修改失 ...