couchbase是一个很强大的nosql数据库,但现在几乎没有一个框架语言支持它,所以在javaweb中不能不能使用hibernate等orm框架来管理它,只能我们自己管理。
spring托管couchbase的方法
先创建一个couchbaseDB.properties文件来作为数据库的配置。
Java代码
couchBase.name=draw
couchBase.server=localhost:8091
couchBase.pwd=123
其中couchBase.server可能有很多个,如果有多个,那么多个值用“,”分隔开,比如
Java代码
couchBase.server=localhost:8091,192.168.0.3:8091
然后创建app_couchbase.xml文件来配置couchbase
Xml代码
<bean id="couchbaseConnector" class="com.impulse.couchbase.CouchbaseConnector"
destroy-method="close">
<property name="serverAddress">
<value>${couchBase.server}</value>
</property>
<property name="name">
<value>${couchBase.name}</value>
</property>
<property name="pwd">
<value>${couchBase.pwd}</value>
</property>
</bean>
<bean id="couchbaseTemplate" class="com.impulse.couchbase.CouchbaseTemplate">
<constructor-arg>
<ref bean="couchbaseConnector" />
</constructor-arg>
<!-- <property name="couchbaseConnector" ref="couchbaseConnector" /> -->
</bean>
以后操作couchbase就使用类com.impulse.couchbase.CouchbaseTemplate
然后创建app_common.xml用来做spring的基本配置
Xml代码
<context:annotation-config />
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<bean id="porpertyLoder"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:couchbaseDB.properties</value>
</property>
</bean>
<import resource="app_couchbase.xml"/>
再创建类文件CouchbaseConnector来用来创建对couchbase的连接
Java代码
public class CouchbaseConnector {
private String serverAddress;
private String name;
private String pwd;
public CouchbaseConnectionFactory connect() {
CouchbaseConnectionFactory cf = null;
try {
String[] serverNames = serverAddress.split(",");
ArrayList<URI> serverList = new ArrayList<URI>();
for (String serverName : serverNames) {
URI base = null;
base = URI.create(String.format("http://%s/pools",serverName));
serverList.add(base);
}
cf = new CouchbaseConnectionFactory(
serverList, name, pwd);
return cf;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public void close(){
}
public String getServerAddress() {
return serverAddress;
}
public void setServerAddress(String serverAddress) {
this.serverAddress = serverAddress;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
再创建CouchbaseTemplate来封装CouchbaseClient的功能
Java代码
public class CouchbaseTemplate extends CouchbaseClient{
public CouchbaseTemplate(CouchbaseConnector couchbaseConnector) throws IOException{
super(couchbaseConnector.connect());
}
public void add(String key,Object value){
this.add(key, 0, value);
}
//这里可以创建一些别的方法来封装CouchbaseClient
}
这样以后直接使用CouchbaseTemplate的实例就可以了。
由于spring没有自己的事务管理,所以我们还要为它单独写一个事务。