ArcSDE SDK Java 快速实践 3

本文介绍如何使用ArcSDE SDK进行表的创建、索引和约束的设置,并演示了更新统计、释放锁、重命名表等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I. 表和图层

在ArcSDE中的“表”(Table)指的就是所有的数据库表对象,而“图层”(Layer)指的是在ArcSDE中注册过的空间表。

· SeTable
1. 创建表

通过SeTable的create方法可以创建一个表,一下代码展示了如何创建一个名为“CREATE_TEST”的表:

SeConnection conn = getConn();

if(conn !=null){

try {

SeTable table = new SeTable(conn, "CREATE_TEST");

SeColumnDefinition[] colDefs = new SeColumnDefinition[2];

colDefs[0] = new SeColumnDefinition("ID", SeColumnDefinition.TYPE_INT32, 10, 0, false);

colDefs[1] = new SeColumnDefinition("NAME", SeColumnDefinition.TYPE_STRING, 0, 0, true);

table.create(colDefs);

} catch (SeException e) {

e.printStackTrace();

} finally{

try {

conn.close();

} catch (SeException e) {

e.printStackTrace();

}

}

}

表的字段通过SeColumnDefinition来指定,通过它可以指定字段名称、类型、长度、精度、是否为空等属性,下面是上述代码执行后的结果:

image

图 3 通过ArcSDE SDK创建的一个普通表

2. 创建索引和约束

通过SeTable的createIndex等方法可以在一个表的某些字段上创建索引和约束,下面的代码在上面创建的CREATE_TEST表的ID字段上创建了一个唯一约束、升序的索引,在“NAME”字段上创建了一个主键约束:

SeConnection conn = getConn();

if(conn !=null){

try {

SeTable table = new SeTable(conn, "CREATE_TEST");

table.createIndex("ID", true, true, null, "IDX_CREATE_TEST_ID");

table.createPrimaryConstraint(new String[]{"NAME"}, "PK_CREATE_TEST_NAME", null);

} catch (SeException e) {

e.printStackTrace();

}finally{

try {

conn.close();

} catch (SeException e) {

e.printStackTrace();

}

}

}

这是上述代码执行后的效果:

image

图 4 通过ArcSDE SDK创建索引和约束

3. 一些其它操作

通过SeTable的一些其他方法可以进行更新统计、释放锁、重命名表、截短表、删除表等操作,用法见以下代码:

SeConnection conn = getConn();

if(conn !=null){

try {

SeTable table = new SeTable(conn, "CREATE_TEST");

table.updateDBMSStats("IDX_CREATE_TEST_ID", "COMPUTE",

SeTable.SE_UPDATE_BUSINESS_TABLE_STATS);//更新统计

try {

table.freeLock();//释放锁

} catch (Exception e) {

e.printStackTrace();

}

table.rename("TO_DELETE");//重命名表

table.truncate();//截短表

table.delete();//删除表

} catch (SeException e) {

e.printStackTrace();

}finally{

try {

conn.close();

} catch (SeException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值