写道
SDEDBManager .java
package com.digitalchina.arcgis.common;
import java.util.Calendar;
import com.esri.sde.sdk.client.SeConnection;
import com.esri.sde.sdk.client.SeCoordinateReference;
import com.esri.sde.sdk.client.SeDelete;
import com.esri.sde.sdk.client.SeException;
import com.esri.sde.sdk.client.SeInsert;
import com.esri.sde.sdk.client.SeLayer;
import com.esri.sde.sdk.client.SeRow;
import com.esri.sde.sdk.client.SeShape;
public class SDEDBManager {
private static String server = "192.168.1.200";
private static String instance ="5151";
private static String database = "ORCL";
private static String username = "sde";
private static String password = "sde";
public static SeConnection getConn() {
SeConnection conn = null;
if (conn == null) {
try {
conn = new SeConnection(server, instance, database, username,password);
} catch (SeException ex) {
ex.printStackTrace();
}
}
return conn;
}
public static void main(String args[]){
new SDEDBManager().delete("camera");
//new SDEDBManager().insertOnePoint();
}
public void insert(){
SeConnection conn=getConn();
if(conn!=null){
try{
SeInsert insert =new SeInsert(conn);
insert.intoTable("PT", new String[]{"SHAPE","NAME","VISITTIME","FCC","FROMTIME","TOTIME","SUBTYPES" });
insert.setWriteMode(true);//开启buffer
SeLayer layer=new SeLayer(conn,"PT","SHAPE");
SeCoordinateReference cr =layer.getCoordRef();
for(int i=0;i<10;i++){
SeRow row =insert.getRowToSet();
SeShape shape=new SeShape(cr);
String wkt="POINT("+i+" "+i+")";
shape.generateFromText(wkt);
row.setShape(0, shape);
row.setNString(1, "名称"+i);
row.setDouble(2, 20.0);
row.setNString(3, "D31");
row.setTime(4,Calendar.getInstance());
row.setTime(5,Calendar.getInstance());
row.setInteger(6, new Integer(2));
insert.execute();
}
insert.flushBufferedWrites();
insert.close();
}catch(SeException e){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SeException e){
e.printStackTrace();
}
}
}
}
public void delete(String tableName){
SeConnection conn=getConn();
if(conn!=null){
try{
SeDelete delete = new SeDelete(conn);
delete.fromTable(tableName, "OBJECTID>0");
}catch(SeException e){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SeException e){
e.printStackTrace();
}
}
}
}
public void insertOnePoint(){
SeConnection conn=getConn();
if(conn!=null){
try{
SeInsert insert =new SeInsert(conn);
insert.intoTable("FIRE", new String[]{"SHAPE","NAME", "FROMTIME","TOTIME","SUBTYPES" });
insert.setWriteMode(true);//开启buffer
SeLayer layer=new SeLayer(conn,"HOSPITAL","SHAPE");
SeCoordinateReference cr =layer.getCoordRef();
SeRow row =insert.getRowToSet();
SeShape shape=new SeShape(cr);
String wkt="POINT(-122.43644 37.76927)";
shape.generateFromText(wkt);
row.setShape(0, shape);
row.setNString(1, "FIRE CENTER");
row.setTime(2,Calendar.getInstance());
row.setTime(3,Calendar.getInstance());
row.setInteger(4, new Integer(2));
insert.execute();
insert.flushBufferedWrites();
insert.close();
}catch(SeException e){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SeException e){
e.printStackTrace();
}
}
}
}
}