couchbase是一个很强大的nosql数据库,但现在几乎没有一个框架语言支持它,所以在javaweb中不能不能使用hibernate等orm框架来管理它,只能我们自己管理。
spring托管couchbase的方法
先创建一个couchbaseDB.properties文件来作为数据库的配置。
couchBase.name=draw couchBase.server=localhost:8091 couchBase.pwd=123
其中couchBase.server可能有很多个,如果有多个,那么多个值用“,”分隔开,比如
couchBase.server=localhost:8091,192.168.0.3:8091
然后创建app_couchbase.xml文件来配置couchbase
<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的基本配置
<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的连接
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的功能
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没有自己的事务管理,所以我们还要为它单独写一个事务。