2019独角兽企业重金招聘Python工程师标准>>>
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没有自己的事务管理,所以我们还要为它单独写一个事务。