ArcSDE SDK Java 快速实践 3

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来指定,通过它可以指定字段名称、类型、长度、精度、是否为空等属性,下面是上述代码执行后的结果:

图 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();

}

}

}

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

图 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();

}

}

}

你可能感兴趣的:(java)