package com.spinfo.util; import com.esri.sde.sdk.client.SeConnection; 
import com.esri.sde.sdk.client.SeException; public class SDEConnectionFactory { 
private final static String server="127.0.0.1"; 
private final static int instance=5151; 
private final static String database=""; 
private final static String user="sde"; 
private final static String password="spinfo"; private static SeConnection connection=null; private SDEConnectionFactory(){ } public static SeConnection getSDEConnection(){ 
if(connection==null ¦ ¦connection.isClosed()){ 
try { 
connection=new SeConnection(server,instance,database,user,password); 
} catch (SeException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 

return connection; 

return connection; 
} } 
package com.spinfo.dto; import java.util.Vector; import com.esri.sde.sdk.client.SDEPoint; 
import com.esri.sde.sdk.client.SeConnection; 
import com.esri.sde.sdk.client.SeCoordinateReference; 
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; 
import com.spinfo.util.SDEConnectionFactory; public class AddLineDTO { private SeConnection conn; public void addLine() { 
conn = SDEConnectionFactory.getSDEConnection(); 
SeLayer insertLayer = null; 
try { 
if (conn != null) { 
Vector list = conn.getLayers(); 
for (int i = 0; i  < list.size(); i++) { 
SeLayer layer = (SeLayer) list.elementAt(i); 
if (layer.getName().equalsIgnoreCase("houjie_xl")) { 
insertLayer = layer; 
break; 


conn.startTransaction(); 
String[] cols = new String[3]; 
cols[0] = new String("XLMC"); 
cols[1] = new String("JLID"); 
cols[2] = insertLayer.getSpatialColumn(); SeInsert insert = new SeInsert(conn); 
insert.intoTable(insertLayer.getName(), cols); 
insert.setWriteMode(true); 
SeCoordinateReference coordref = insertLayer.getCoordRef(); SeShape shape = new SeShape(coordref); 
SDEPoint[] pArray = new SDEPoint[3]; 
pArray[0] = new SDEPoint(364344.098, 536533.76); 
pArray[1] = new SDEPoint(364293.709, 536525.047); 
pArray[2] = new SDEPoint(364253.964, 536517.825); int[] partOffSets = new int[1]; 
partOffSets[0] = 0; shape.generateLine(3, 1, partOffSets, pArray); 
Long a = (long) 1; 
SeRow row = insert.getRowToSet(); 
row.setNString(0, "wowowo"); 
row.setLong(1, a); 
row.setShape(2, shape); insert.execute(); 
insert.close(); 
conn.commitTransaction(); 
conn.close(); 

} catch (SeException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 

} public static void main(String[] args) { 
AddLineDTO line = new AddLineDTO(); 
line.addLine(); 
System.out.println("Go!Go!Go!"); 

} 为什么表里面写的是LONG类型。程序里写的也是但出现GET REQUEST ON WRONG COLUMN TYPE. 
要是把两句红的去掉之后是正确的