在jbulder9中加入sdo_java_040319.zip类库,也就是sdoapi类库,但在编译时仍然报oracle.sdoapi.OraSpatialManager找不到,为什么?代码如下:
// Copyright (C) Oracle Corporation 1999. All Rights Reserved.package sample;import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
import oracle.sdoapi.OraSpatialManager;
import oracle.sdoapi.geom.*;
import oracle.sdoapi.adapter.*;
import oracle.sdoapi.sref.*;
/**
* This sample program generates various geometries, converts them to
* the SDO format and writes them to a database table.
*/
public class SampleNewToSDO
{
private static String m_host = "legend";
private static String m_port = "1521";
private static String m_sid = "ship816";
private static String m_user = "herman";
private static String m_password = "vampire"; private static String m_tableName;// = "TEST_TABLE3";
private static String geomMetaDataTable = "user_sdo_geom_metadata"; public static void main(String args[]) throws Exception
{
if (args.length != 1)
{
System.out.println("Parameters:");
System.out.println("<Table name>: Table name for the result");
return;
} m_tableName = args[0].toUpperCase();
String url = "jdbc:oracle:thin:@" + m_host + ":" + m_port + ":" + m_sid;
OracleConnection conn = null;
try
{
DriverManager.registerDriver(new OracleDriver());
conn = (OracleConnection)DriverManager.getConnection(url, m_user, m_password);
}
catch(Exception e) { e.printStackTrace(); } prepareTableForData(conn); Geometry geom;
STRUCT str;
GeometryFactory gF = OraSpatialManager.getGeometryFactory();
// Set spatial reference system in which the geometries will be created
SRManager srManager = OraSpatialManager.getSpatialReferenceManager(conn);
SpatialReference sref = srManager.retrieve(8265); // SRID = 8265: LAT-LON (NAD 83)
gF.setSpatialReference(sref); String update = "INSERT INTO " + m_tableName + " VALUES(?, ?)";
PreparedStatement ps = conn.prepareStatement(update); GeometryAdapter sdoAdapter = OraSpatialManager.getGeometryAdapter("SDO", "8.1.6",
null, STRUCT.class, null, conn); // create all types of different geometries
{
// create point
System.out.println(" ");
System.out.println("Create point...");
geom = gF.createPoint(11, 22);
System.out.println("export to SDO...");
str = (STRUCT) sdoAdapter.exportGeometry(STRUCT.class, geom);
System.out.println("write to DB...");
ps.setInt(1, 1);
ps.setObject(2, str);
ps.executeUpdate();
} {
// create line string
System.out.println(" ");
System.out.println("Create line string...");
double ordArray[] = {10, 10, 20, 20, 30, 40};
geom = gF.createLineString(ordArray);
System.out.println("write to DB...");
ps.setInt(1, 2);
ps.setObject(2, sdoAdapter.exportGeometry(STRUCT.class, geom));
ps.executeUpdate();
} System.out.println("close connection...");
ps.close();
conn.close();
System.out.println("Done with writing."); ////////////////////////////////////////////////////////////////////////////
System.out.println("Now check DB...");
System.out.println("////////////////////////////////");
try
{
conn = (OracleConnection)DriverManager.getConnection(url, m_user, m_password);
}
catch(Exception e) { e.printStackTrace(); }
conn.setDefaultRowPrefetch(100);
// Need to reconstruct geometry adapter if connection changes
sdoAdapter = OraSpatialManager.getGeometryAdapter("SDO", "8.1.6",
null, STRUCT.class, null, conn); String query = "SELECT * FROM " + m_tableName;
Statement stm = conn.createStatement();
OracleResultSet ors = (OracleResultSet)stm.executeQuery(query);
while (ors.next())
{
Geometry geometry = sdoAdapter.importGeometry(ors.getObject(2));
System.out.println("Geometry type: " + geometry.getGeometryType());
}
stm.close();
conn.close();
} protected static void prepareTableForData(Connection conn)
{
////////////////////////////////////////////////////////////////////////////
// Preparation of the database
//////////////////////////////////////////////////////////////////////////// // drop table
System.out.println("Dropping old table...");
Statement stmt = null;
String update;
try
{
stmt = conn.createStatement();
update = "DROP TABLE " + m_tableName;
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } // delete reference to it from meta data table
try
{
stmt = conn.createStatement();
update =
"DELETE FROM " + geomMetaDataTable + " WHERE table_name = '" + m_tableName + "'";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } try
{
// create table
System.out.println("Creating new table...");
stmt = conn.createStatement();
update = "CREATE TABLE " + m_tableName +
" (gid NUMBER, geometry MDSYS.SDO_GEOMETRY)";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } try
{
// add reference to it to meta data table
stmt = conn.createStatement();
update = "INSERT INTO " + geomMetaDataTable + " VALUES ('" + m_tableName +
"', 'GEOMETRY', MDSYS.SDO_DIM_ARRAY(" +
"MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.0000005), " +
"MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.0000005)), 1)";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); }
}
}
// Copyright (C) Oracle Corporation 1999. All Rights Reserved.package sample;import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
import oracle.sdoapi.OraSpatialManager;
import oracle.sdoapi.geom.*;
import oracle.sdoapi.adapter.*;
import oracle.sdoapi.sref.*;
/**
* This sample program generates various geometries, converts them to
* the SDO format and writes them to a database table.
*/
public class SampleNewToSDO
{
private static String m_host = "legend";
private static String m_port = "1521";
private static String m_sid = "ship816";
private static String m_user = "herman";
private static String m_password = "vampire"; private static String m_tableName;// = "TEST_TABLE3";
private static String geomMetaDataTable = "user_sdo_geom_metadata"; public static void main(String args[]) throws Exception
{
if (args.length != 1)
{
System.out.println("Parameters:");
System.out.println("<Table name>: Table name for the result");
return;
} m_tableName = args[0].toUpperCase();
String url = "jdbc:oracle:thin:@" + m_host + ":" + m_port + ":" + m_sid;
OracleConnection conn = null;
try
{
DriverManager.registerDriver(new OracleDriver());
conn = (OracleConnection)DriverManager.getConnection(url, m_user, m_password);
}
catch(Exception e) { e.printStackTrace(); } prepareTableForData(conn); Geometry geom;
STRUCT str;
GeometryFactory gF = OraSpatialManager.getGeometryFactory();
// Set spatial reference system in which the geometries will be created
SRManager srManager = OraSpatialManager.getSpatialReferenceManager(conn);
SpatialReference sref = srManager.retrieve(8265); // SRID = 8265: LAT-LON (NAD 83)
gF.setSpatialReference(sref); String update = "INSERT INTO " + m_tableName + " VALUES(?, ?)";
PreparedStatement ps = conn.prepareStatement(update); GeometryAdapter sdoAdapter = OraSpatialManager.getGeometryAdapter("SDO", "8.1.6",
null, STRUCT.class, null, conn); // create all types of different geometries
{
// create point
System.out.println(" ");
System.out.println("Create point...");
geom = gF.createPoint(11, 22);
System.out.println("export to SDO...");
str = (STRUCT) sdoAdapter.exportGeometry(STRUCT.class, geom);
System.out.println("write to DB...");
ps.setInt(1, 1);
ps.setObject(2, str);
ps.executeUpdate();
} {
// create line string
System.out.println(" ");
System.out.println("Create line string...");
double ordArray[] = {10, 10, 20, 20, 30, 40};
geom = gF.createLineString(ordArray);
System.out.println("write to DB...");
ps.setInt(1, 2);
ps.setObject(2, sdoAdapter.exportGeometry(STRUCT.class, geom));
ps.executeUpdate();
} System.out.println("close connection...");
ps.close();
conn.close();
System.out.println("Done with writing."); ////////////////////////////////////////////////////////////////////////////
System.out.println("Now check DB...");
System.out.println("////////////////////////////////");
try
{
conn = (OracleConnection)DriverManager.getConnection(url, m_user, m_password);
}
catch(Exception e) { e.printStackTrace(); }
conn.setDefaultRowPrefetch(100);
// Need to reconstruct geometry adapter if connection changes
sdoAdapter = OraSpatialManager.getGeometryAdapter("SDO", "8.1.6",
null, STRUCT.class, null, conn); String query = "SELECT * FROM " + m_tableName;
Statement stm = conn.createStatement();
OracleResultSet ors = (OracleResultSet)stm.executeQuery(query);
while (ors.next())
{
Geometry geometry = sdoAdapter.importGeometry(ors.getObject(2));
System.out.println("Geometry type: " + geometry.getGeometryType());
}
stm.close();
conn.close();
} protected static void prepareTableForData(Connection conn)
{
////////////////////////////////////////////////////////////////////////////
// Preparation of the database
//////////////////////////////////////////////////////////////////////////// // drop table
System.out.println("Dropping old table...");
Statement stmt = null;
String update;
try
{
stmt = conn.createStatement();
update = "DROP TABLE " + m_tableName;
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } // delete reference to it from meta data table
try
{
stmt = conn.createStatement();
update =
"DELETE FROM " + geomMetaDataTable + " WHERE table_name = '" + m_tableName + "'";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } try
{
// create table
System.out.println("Creating new table...");
stmt = conn.createStatement();
update = "CREATE TABLE " + m_tableName +
" (gid NUMBER, geometry MDSYS.SDO_GEOMETRY)";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); } try
{
// add reference to it to meta data table
stmt = conn.createStatement();
update = "INSERT INTO " + geomMetaDataTable + " VALUES ('" + m_tableName +
"', 'GEOMETRY', MDSYS.SDO_DIM_ARRAY(" +
"MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.0000005), " +
"MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.0000005)), 1)";
stmt.executeUpdate(update);
stmt.close();
}
catch (SQLException de) { System.out.println(de); }
}
}
解决方案 »
- db2 启动 SQL5043N 求助?
- Oracle DBA权限 无法导入方案的问题
- 为何我在Win2000Server上安装ORACLE9I的时候不能安装,点SETUP后一直没有反映
- 存储过程权限问题,急等!
- 问一个oracle修改数据库的问题,通过表关联,将某表若干字段的数据赋值到另外一表的对应字段,初学oracle,先谢了
- 求一SQL的写发。
- 表中有1000条纪录我想删除其中900条纪录,怎么办?
- 请问Oracle里面如何用存储过程填充.Net里面的DataSet?
- 做项目时遇到一个问题,向各位老鸟求教!~
- 如何将7.03.02版本Oracle数据库导出的文件导入到8.1.6的Oracle数据库中?
- 在pl/sql developer中哪里可以查看到oracle的所有关键词
- 求个sql语句!
jbulder9不会用。
你把缺的包放在你的环境变量CLASSPATH里面去