繁体   English   中英

如何通过 Java API 创建 Couchbase 存储桶?

[英]How to create Couchbase bucket via java API?

我正在使用 Spring 数据 couchbase 。

 package com.CouchbaseMine.config;

    import java.io.IOException;
    import java.net.URI;
    import java.util.Arrays;
    import java.util.LinkedList;
    import java.util.List;

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;

    import com.couchbase.client.CouchbaseClient;


    @Configuration
    @EnableAutoConfiguration
    public class CouchbaseMineCouchBaseConfig extends AbstractCouchbaseConfiguration {


        @Value("${couchbase.cluster.bucket}")
        private String bucketName;

        @Value("${couchbase.cluster.password}")
        private String password;

        @Value("${couchbase.cluster.ip}")
        private String ip;


        @Override
        protected String getBucketName() {

            List<URI> uris=new LinkedList<URI>();
            uris.add(URI.create("5x.xx.xxx.xx9"));
            CouchbaseClient client=null;
            try {
                System.err.println("-- > - > i am in ");
                client=new CouchbaseClient(uris,"default","");

            } catch (IOException e) {

                System.err.println("IOException connetion to couchbase:"+e.getMessage() );
                System.exit(1);
            }
            return this.bucketName;
        }

        @Override
        protected String getBucketPassword() {
            return this.password;
        }

        @Override
        protected List<String> bootstrapHosts() {
            // TODO Auto-generated method stub
            //return Collections.singletonList("54.89.127.249");
            return Arrays.asList(this.ip);
        }

    }

这是用于建立连接的配置类

遵循应用程序属性文件

server.port=3000
couchbase.cluster.ip 5x.xx.xxx.xx9
couchbase.cluster.bucket DHxxxar
couchbase.cluster.password 1221

底线:我已经在 couchbase 中手动创建了存储桶 (Dhxxxar)。但是我需要在运行 Spring Boot 应用程序时自动创建存储桶(数据库)。

所以给我任何建议。 提前致谢

尝试这个:

Cluster cluster = CouchbaseCluster.create("127.0.0.1");
ClusterManager clusterManager = cluster.clusterManager("Administrator", "12345");
BucketSettings bucketSettings = new DefaultBucketSettings.Builder()
        .type(BucketType.COUCHBASE)
        .name("hello")
        .quota(120)
        .build();

clusterManager.insertBucket(bucketSettings);

更多详情: https : //developer.couchbase.com/documentation/server/current/sdk/java/managing-clusters.html

IgorekPotworek 的回答非常适合 Couchbase Java SDK 2.x 版。

对于 3.x 版,代码看起来有点不同:

Cluster cluster = Cluster.connect("localhost", "Administrator", "password");
BucketManager bucketManager = cluster.buckets();
bucketManager.createBucket(
    BucketSettings.create("bucketName")
        .ramQuotaMB(100));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM