• 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

  • 相关阅读:
    Python 实践
    Keras实践
    NLP S实践
    Spark java 实践
    Seaborn数据探索可视化
    Linux实践
    Redis
    ML算法选型
    Elasticsearch issue
    牛客练习赛37
  • 原文地址:https://www.cnblogs.com/yuluoxingkong/p/10768829.html
Copyright © 2020-2023  润新知