CouchDB客户端开发—Java版

本文详细介绍在Fedora系统中安装CouchDB的过程,包括配置、启动、重启及开机自动启动等操作,并提供了使用Java进行CouchDB访问的示例代码,涵盖Jar包引入及具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值