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
CouchDB客户端开发—Java版的更多相关文章
- apache kafka系列之客户端开发-java
1.依赖包 <dependency> <groupId>org.apache.kafka</groupId> <a ...
- [Tool] csdn客户端开发(非官方版)
偶尔间看到一篇博客[清山博客]里讲述了他自己开发的一个CSDN博客客户端,并去下载体验了一下,然后就自己手痒也要开发一下 先看看结果图: 在文章列表里,鼠标右键可以操作[置顶.删除.评论权限]: 下面 ...
- 微信APP支付服务端开发Java版(一)
一.准备工作 去微信开发者中心下载(扫码支付,里面的大部分代码是可以用的) https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11 ...
- JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图
简介:本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏.Java实现QQ ...
- Wechat4j之Hello world——使用wechat4j快速开发java版微信公众号
Wechat4j是一个开源的java微信开发框架,是目前最简单易用的java微信开发框架. 项目地址:https://github.com/sword-org/wechat4j Wechat4j.ja ...
- 最详细的 paypal 支付接口开发--Java版
做全球性的支付,选用paypal!为什么选择paypal? 因为paypal是目前全球最大的在线支付工具,就像国内的支付宝一样,是一个基于买卖双方的第三方平台.买家只需知道你的paypal账号,即可在 ...
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...
随机推荐
- windows系统开启虚拟化
电脑如何开启虚拟进化 当VMware安装系统时,如果电脑没有开启虚拟化,在安装过程中,会发生错误. 查看电脑是否开启虚拟化,[任务管理器] 正常情况如上图,而当虚拟化没有开启的时候,如何解决? int ...
- VMware centos7 如何配置静态ip并且可上网
注:此贴使用NAT方式配置上网模式. 1.设置虚拟机的网络适配器为NAT模式: 2.修改VMware的“虚拟网络编辑器”: 打开后选择NAT模式,勾选,然后点击NAT设置: NAT默认设置了188网段 ...
- Linux 设置系统时间和时区1.Centos
- Java静态代码块与非静态代码块
静态代码块,格式是 static{ },随着类的加载而加载,且只执行一次. 在程序中,执行的优先级最高. 非静态代码块,格式是{ },在创建对象的时候运行(即new一个对象的时候),每创建一次对象就执 ...
- 【做题】POI2011R1 - Plot——最小圆覆盖&倍增
原文链接 https://www.cnblogs.com/cly-none/p/loj2159.html 题意:给出\(n\)个点,你需要按编号将其划分成不超过\(m\)段连续的区间,使得所有每个区间 ...
- InvalidArgumentError: ConcatOp : Dimensions of inputs should match: shape[0] = [1,136,240,64] vs. shape[1] = [1,135,240,64]
初始输入图片大小为1600*1200,设置的输入网络的最大测试图片大小为1600*1200相当于scale =1 ,运行没有问题.之后输入图片大小为1920*1080,测试图片大小为1920*1080 ...
- 洛谷 P3381 【【模板】最小费用最大流】
题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的 ...
- 闽南师范大学·大英A3复习专题
精读<新视野·读写教程A3> U2: words: TEXT A TEXT B appraise vt.评定 | abort vt.(因困难或危险)使(活动)终止 paralyze v ...
- SQL Server 第四章 存储过程(Procedure),触发器(Trigger),数据完整性(Data Integrity)
use electric go --变量 --局部变量的声明格式 --declare @局部变量名 数据类型 --局部变量赋值 declare @littlepage int )) ) select ...
- Ansible 脚本运行一次后,再次运行时出现报错情况,原因:ansible script 的格式不对,应改成Unix编码
Ansible 脚本运行一次后,再次运行时出现报错情况,原因:ansible script 的格式不对,应改成Unix编码 find . -name "*" | xargs do ...