首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

java操作oracle(SDE)空间信息引见

2013-09-05 
java操作oracle(SDE)空间信息介绍/** * 连接sde服务 * @return */publicSeConnection getConnection () {S

java操作oracle(SDE)空间信息介绍
/** * 连接sde服务 * @return */public SeConnection getConnection () { SeConnection conn = null ; try { conn = new SeConnection(SDE_SERVER_IP, SDE_PROT, SDE_DATEBASE_SID, SDE_USERNAME, SDE_PASSWORD); } catch (SeException e) { return null; } return conn;}

?对sde数据进行添加,点线面的新增

?

?

/** * 添加资源信息点到sde中 * @param pointBean 坐标点 POJO * @param tbName    图层名称 * @param String typeName 所画的类型 1 点 2 线 3 面 * @return   Long   sde的id * @throws Exception */public Long addPointObject(PointBean pointBean, List columnList, String tableName, String typeName) throws Exception {SeLayer insertLayer = null;SeConnection conn = null;Long intsertRowID = null;SeInsert insert = null;try {conn = this.getConnection();insertLayer = new SeLayer( conn,  tableName, "SHAPE");if (insertLayer == null) {throw new Exception("找不到空间表:" + tableName);}conn.startTransaction();int arrayLength = columnList.size() + 1 ;String[] cols = new String[arrayLength];cols[0] = "SHAPE";for (int i = 0 ;i<columnList.size() ; i++) {ColumnBean columnBean = (ColumnBean)columnList.get(i);cols[i+1] = columnBean.getName();}insert = new SeInsert(conn);insert.intoTable(insertLayer.getName(), cols);insert.setWriteMode(true);SeCoordinateReference coordref = (SeCoordinateReference) insertLayer.getCoordRef();SeShape shape = new SeShape(coordref);if ("1".equals(typeName)) {this.addPoint(pointBean, shape);} else if ("2".equals(typeName)) {this.addLine(pointBean, shape);} else if ("3".equals(typeName)) {this.addPolygon(pointBean, shape);}SeRow row = insert.getRowToSet();row.setShape(0, shape);for (int i = 0 ;i<columnList.size() ; i++) {ColumnBean columnBean = (ColumnBean)columnList.get(i);if (columnBean.getTypeObject() == 1) {row.setNString(i+1, String.valueOf(columnBean.getValObject()));} else if (columnBean.getTypeObject() == 2) {row.setInteger(i+1, Integer.parseInt(columnBean.getValObject().toString()));}else if (columnBean.getTypeObject() == 3) {row.setDouble(i+1, Double.parseDouble(columnBean.getValObject().toString()));} }insert.execute();intsertRowID = new Long(insert.lastInsertedRowId().longValue());conn.commitTransaction();} catch (Exception ex) {ex.printStackTrace();conn.rollbackTransaction();} finally {if (insert != null) {insert.close();}if (conn != null) {conn.close();}}return intsertRowID;}

?sde查询接口实现

?

?

/** * 查询sde * @param productId 产品id * @throws SeException */public SeQuery searchSde (Long productId, String tableName) throws SeException {SeConnection conn = getConnection();SeLayer layer = new SeLayer( conn,  tableName, "SHAPE");        SeSqlConstruct sqlConstruct = new SeSqlConstruct(layer.getName());        if (productId != null) {        sqlConstruct.setWhere("yid="+productId.intValue());        }        String[] cols = null;        if (tableName.equals("YU_AN_POINT") || tableName.equals("FANG_AN_POINT")) {            cols = new String[4];            cols[0] = new String("OBJECTID");            cols[1] = layer.getSpatialColumn();            cols[2] = new String("NAME");            cols[3] = new String("IMAGETYPE");        } else {        cols = new String[3];            cols[0] = new String("OBJECTID");            cols[1] = layer.getSpatialColumn();            cols[2] = new String("NAME");        }        System.out.println("cols.length : " + cols.length);        SeQuery query = new SeQuery(conn, cols, sqlConstruct );        query.prepareQuery();        query.execute();        return query;}

?SDE信息删除操作

/** *  * 删除 通过列对应的值 * @param id     值 * @param column 列  * @param tbName 表名 * @throws SeException */ public void deletePointObject(String id, String column, String tbName) throws SeException {SeConnection conn = null;SeLayer layer = null;SeDelete delete = null;try {conn = this.getConnection();layer = new SeLayer(conn, tbName, "SHAPE"); // 得到对应图层if (layer == null) {throw new Exception("找不到空间表:" + tbName);}conn.startTransaction();delete = new SeDelete(conn);delete.fromTable(layer.getName(), column + "='" + id+"'");conn.commitTransaction();} catch (Exception ex) {conn.rollbackTransaction();} finally {if (delete != null) {try {delete.close();} catch (SeException e) {e.printStackTrace();throw e;} finally {if (conn != null) {conn.close();}}}}}

?

热点排行