巨杉数据库SequoiaDB在Java开发中的增删改查CURD

JSON应用开发

增删改查操作

1 快速入门

此快速入门通过搭建基础运行环境,以快速了解SequoiaDB在JSON应用开发的基本功能.

1.1 环境部署

需要用到的软件有 : SequoiaDB 3.0 , JDK1.8 , maven 3.3.9 , IntelliJ IDEA 2018 .

部署SequoiaDB集群环境

参考文档 [ 集群模式 ] 章节部署SequoiaDB环境,确保可用.

部署Windows开发环境

这里推荐使用JDK1.8 , maven 3.3.9和IntelliJ IDEA 2018作为Windows开发环境.

1.2 正式开始
  • 在IDEA下创建maven工程

  • 驱动安装 . 在pom.xml添加下列依赖:

    <dependency>
    	<groupId>com.sequoiadb</groupId>
    	<artifactId>sequoiadb-driver</artifactId>
    	<version>3.0.1</version>
    </dependency>
    
  • 创建方法获得数据库连接:

     public Sequoiadb getConnection() {
     	 /**
         * 创建数据库连接
         * @param connString 地址或主机名:端口
         * @param username 用户名
         * @param password 密码
         * */
     	Sequoiadb sequoiadb = new Sequoiadb("192.168.248.128:11810", "sdbadmin", "sdbadmin");
     	return sequoiadb;
     }
    
  • 创建集合空间

    public void crtCS() {
    	Sequoiadb sequoiadb = getConnection();
        BasicBSONObject options = new BasicBSONObject();
        options.put("PageSize", Sequoiadb.SDB_PAGESIZE_64K);
        options.put("Domain", "testdomain");
        options.put("LobPageSize", 4096);
        /**
        * 创建集合空间
        * @param csName 集合空间名称
        * @param options 配置参数,选项如下:
        *		PageSize: 数据页大小。单位为字节,默认值64K。
        *		Domain: 所属域。
        *		LobPageSize: Lob数据页大小。单位为字节,默认值262144。
        */
        sequoiadb.createCollectionSpace("testcs", options);
    }
    
  • 创建集合

    public void crtCL() {
    	Sequoiadb sequoiadb = getConnection();
        BasicBSONObject options = new BasicBSONObject();
        options.put("ShardingKey", new BasicBSONObject("id", 1));
        options.put("ShardingType", "hash");
        options.put("Compressed", true);
        options.put("CompressionType", "lzw");
        options.put("AutoSplit", true);
        sequoiadb.getCollectionSpace("testcs").createCollection("demoCL", options);
    }
    
  • 获取集合

     public DBCollection getCollection() {
     	Sequoiadb sequoiadb = getConnection();
        CollectionSpace cs = sequoiadb.getCollectionSpace("testcs");
        DBCollection cl = cs.getCollection("demoCL");
        return cl;
    }
    
  • 插入数据

    public void insert() {
        DBCollection dbCollection = getCollection();
        BSONObject bsonObject = new BasicBSONObject();
        bsonObject.put("name", "tom");
        bsonObject.put("age", 19);
        dbCollection.insert(bsonObject);
    }
    
  • 查询数据

    public void query() {
    	DBCollection dbCollection = getCollection();
        // 查询所有记录,并把查询结果放在游标对象中
        DBCursor cursor = dbCollection.query();
        try {
        	while (cursor.hasNext()) {
            	BSONObject record = cursor.getNext();
                // 可将返回记录映射成自定义实体对象(Person)
                Person person = record.as(Person.class);
                System.out.println(person.toString());
            }
        } catch (BaseException e) {
        	System.out.println("Sequoiadb driver error, error description:" + e.getErrorType());
        } catch (Exception e) {
        	e.printStackTrace();
        } finally {
        	cursor.close();
        }
    }
    
  • 更新数据

    public void update() {
    	DBCollection dbCollection = getCollection();
        BSONObject modifier = new BasicBSONObject();
        //age字段加1
        modifier.put("$inc", new BasicBSONObject("age", 1));
        /**
        * 将符合匹配条件的记录进行更新
        * @param matcher 匹配条件
        * @param modifier 更新规则
        * @param hint 指定使用的索引,
        */
        dbCollection.update(null, modifier, null);
    }
    
  • 删除数据

     public void truncate() {
     	DBCollection dbCollection = getCollection();
    	//删除集合中所有数据
        dbCollection.truncate();
    } 
    
    

2 CURD教程

在教程开始之前,我们需要了解一些基本概念:

SequoiaDB数据库中的数据存放分为三个级别:

  • 数据库
  • 集合空间
  • 集合

因此,在数据库操作中,可用三个类来分别表示连接,集合空间,集合实例,另2个类分别表示游标实例和大对象实例:

实例 名称 描述
SequoiaDB 数据库实例 代表一个单独的数据库连接
CollectionSpace 集合空间实例 代表一个单独的集合空间
DBCollection 集合实例 代表一个单独的集合
DBCursor 游标实例 代表一个查询产生的结果集
DBLob 大对象实例 代表一个大对象

Java驱动需要使用不同的实例进行操作.如读取数据的操作需要游标实例,而创建表空间则需要数据库实例.

2.1 Java开发环境搭建
驱动安装

驱动安装的方式有2种:

  • 访问[ http://download.sequoiadb.com/cn/index-cat_id-2 ] 下载Java驱动jar包

  • 使用maven,在pom.xml中添加下列以来

    <dependency>
    	<groupId>com.sequoiadb</groupId>
        <artifactId>sequoiadb-driver</artifactId>
        <version>3.0.1</version>
    </dependency>
    
    
2.2 连接到SequoiaDB

连接到SequoiaDB的方式有2种:单个连接连接池连接.

在写连接实例之前要了解我们当前准备的SequoiaDB集群环境:

主机名 地址 协调节点端口 sdb用户名 sdb密码
h21 192.168.248.128
### 如何在SequoiaDB巨杉数据库实现CRUD操作 #### 创建表并插入数据 要在 SequoiaSQL 数据库中执行创建表和插入记录的操作,可以按照如下方式完成: ```sql -- 连接到目标数据库 bin/psql -p 5432 sample -- 创建一张测试表 CREATE TABLE test_table ( id SERIAL PRIMARY KEY, name VARCHAR(100), age INT ); -- 插入一条新记录 INSERT INTO test_table (name, age) VALUES ('John Doe', 30); ``` 上述命令通过 `CREATE TABLE` 定义了一张名为 `test_table` 的表格,并定义了三个字段:`id`, `name`, 和 `age`。接着使用 `INSERT INTO` 命令向该表中插入了一条新的记录[^1]。 --- #### 查询数据 查询数据可以通过标准 SQL 中的 `SELECT` 语句来完成。以下是几个常见的例子: ```sql -- 查询所有记录 SELECT * FROM test_table; -- 条件查询年龄大于等于30岁的人员 SELECT * FROM test_table WHERE age >= 30; ``` 这些查询语句允许用户检索存储在表中的特定信息或者全部信息。 --- #### 更新数据 更新现有记录的内容可通过 `UPDATE` 语句实现。下面是一个简单的示例: ```sql -- 将名字为'John Doe'的人的年龄改为31岁 UPDATE test_table SET age = 31 WHERE name = 'John Doe'; ``` 此命令会找到符合条件的所有行并将它们的指定列值修改为目标值。 --- #### 删除数据 删除不需要的数据可利用 `DELETE` 语句来进行管理。例如: ```sql -- 删除名字叫'Mary Smith'的记录 DELETE FROM test_table WHERE name = 'Mary Smith'; -- 清空整个表内的所有数据 TRUNCATE TABLE test_table; ``` 这里展示了两种不同的方法用于移除数据——一种是基于条件逐条删除;另一种则是快速清空整张表而不保留任何历史版本的信息。 --- #### 外部服务器连接与联邦查询支持 如果需要跨不同实例间进行联合查询,则需先设置好外部服务端口映射关系以及事务处理选项后再发起请求。具体步骤已在初始配置部分给出说明。 ```sql -- 使用已建立好的远程链接访问其他节点上的资源 SELECT * FROM foreign_table AT sdb_server; ``` 以上代码片段演示了怎样借助之前设定完毕的服务器名称`sdb_server`去获取远端机器上对应的资料集。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值