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

其他资料:

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

原文地址:https://www.cnblogs.com/yuluoxingkong/p/10768829.html

时间: 2024-10-11 00:23:48

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

微信公众平台深度开发JAVA版第二季视频教程

微信公众平台深度开发JAVA版第二季(九宝饭店微信点餐系统)视频教程下载密码:qa4a     联系QQ:1026270010 微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:m

微信公众平台深度开发JAVA版

课程讲师:翟东平 课程分类:Java 适合人群:高级 课时数量:18(30小节)课时 用到技术:微信公众平台,微信,java涉及项目:九宝饭店微信点餐系统 咨询QQ:1609173918 下载链接:http://pan.baidu.com/s/1dDB4ax7 密码:ebaw 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:myeclipse.MySQL-Front等 其他:在手机应用中的CSS3+div布局.DWR.mybatis.

Apache kafka客户端开发-java

apache kafka中国社区QQ群:162272557 1.依赖包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.10</artifactId> <version>0.8.1</version> </dependency> 2.producer程序开发例子 2.1 producer参数说明 #指定kafka节点列表,

小梅科普:微信公众平台深度开发JAVA版(第一季)

微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:myeclipse.MySQL-Front等 其他:在手机应用中的CSS3+div布局.DWR.mybatis.gson.quar

微信公众号开发java版-消息回复(普通文字消息和语音消息)

关于微信公众号的消息自动回复功能开发,本文将做一个系统介绍,开发语言为java 话不多说,直接上代码 1.控制器代码 package webapp.controller; import org.springframework.context.annotation.Scope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.R

下载微信公众平台深度开发JAVA版一二三季

第一季:http://pan.baidu.com/s/1o7HtdgQ第二季:http://pan.baidu.com/s/1nvNGZax篇幅关系,第三季就不发了,有需要加我QQ:380539674主要讲解微信公众平台的相关知识,发展现状,以及未来发展前景. 主要针对开发人员和软件公司前端销售工程师.课程将使学生了解微信公众平台.了解微信公众平台的市场应用方式.拓展思路,有助于软件公司前端销售工程师和开发项目经理给用户提出解决方案.

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

一.准备工作 去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的) https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1 选择UTF-8的版本copy到你的项目里面 找到Configure.java的类修改成public static String PAY_API = "https://api.mch.weixin.qq.com/pay/unifiedorder"; 下面正式进入代码部分 1 //初始化

微信公众平台深度开发JAVA版第一季 19.微信猜数字活动1

MySQL-Font这个工具.

java版mosquitto客户端使用SSL功能的具体操作总结

在开发java版mosquitto客户端程序时需要使用paho库,如果开发的java客户端要用ssl功能,则需要Bouncy Castle库:在使用ssl功能时,需要证书文件进行进行身份认证,但在测试过程中,只自己制作ca并进行证书签发即可.在测试过程中首先创建一个统一的ca,该ca包括一个crt文件,一个key文件(例如ca.crt.ca.key):测试过程中,要使用该ca为每个测试的机子签发证书,例如:mosquitto服务器运行在192.168.4.223的linux机子上,java版的客