- 浏览: 216914 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
chen569844962:
博主,你好,这个代码貌似不太完整,不知道能不能共享一下带我给我 ...
JTable 导出 Excel 利用 jxl.jar -
z995204127:
我去,发多了,太激动
【原创】swing 按钮点击 调用swt窗口(SWT浏览器)browser -
z995204127:
楼主,我去,太尼玛给力了,我搞了一天没搞定,原来要用一个线程包 ...
【原创】swing 按钮点击 调用swt窗口(SWT浏览器)browser -
z995204127:
楼主,我去,太尼玛给力了,我搞了一天,原来要用一个线程包装下。 ...
【原创】swing 按钮点击 调用swt窗口(SWT浏览器)browser -
changhuzhao:
好用!
org/eclipse/ui/internal/util/SWTResourceUtil
本来报错“无效列类型”,但是今天在“大强”“linliangyi2007”的要求下公
布代码以供找错,于是自己重新整理了一个test,发现可以用了,呵呵,奇怪了
呀,可能是我原来程序那里有点不对,我再找找去。在此特别感谢两位“大强”
“linliangyi2007”!
实体类:User:
package com.test.vo; import com.navsys.spatial.JGeometryType; public class User { private Integer id; private String name; private JGeometryType location; /** * */ public User() { super(); } /** * @param name * @param location */ public User(String name, JGeometryType location) { super(); this.name = name; this.location = location; } /** * @return the id */ public Integer getId() { return id; } /** * @param id the id to set */ public void setId(Integer id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the location */ public JGeometryType getLocation() { return location; } /** * @param location the location to set */ public void setLocation(JGeometryType location) { this.location = location; } }
映射文件:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping package="com.test.vo"> <class name="User" table = "tb_user" schema="CMSDB"> <id name="id" type="integer"> <column name="User_ID" precision="22" scale="0" /> <generator class="native"> <param name="sequence">WQ_SEQUENCE</param> </generator> </id> <property name="name" not-null="true"/> <property name = "location" type="com.navsys.spatial.JGeometryType"/> </class> </hibernate-mapping>
hibernate.cfg.xml:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- dialect for Oracle 10G Spatial --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url"> jdbc:oracle:thin:@localhost:1521:xe</property> <property name="connection.username">CMSDB</property> <property name="connection.password">CMSDB</property> <!-- dialect for Oracle 10G Spatial --> <property name="hibernate.dialect">com.navsys.spatial.OracleSpatialDialect</property> <!--加载hibernate自动更新数据库结构--> <property name="hibernate.hbm2ddl.auto" >update</property> <!-- 让hibernate自动管理会话环境 --> <property name="current_session_context_class">thread</property> <!--配置的JDBC连接池--> <property name="connection.pool_size">5</property> <!--显示查询语句--> <property name="hibernate.show_sql">true</property> <!--格式化SQL--> <property name="hibernate.format_sql">true</property> <!--配置二级缓存--> <property name="hibernate.cache.use_second_level_cache">true</property> <!--使用二级缓存第三方提供商--> <property name="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider</property> <mapping resource="com/test/vo/User.hbm.xml"></mapping> </session-factory> </hibernate-configuration>
导出数据库:
import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ExportDB { public static void main(String[] args) { Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(true, true); } }
运行ExportDB.JAVA:正常创建数据库:
drop table CMSDB.tb_user cascade constraints drop sequence WQ_SEQUENCE create table CMSDB.tb_user ( User_ID number(10,0) not null, name varchar2(255 char) not null, location sdo_geometry, primary key (User_ID) ) create sequence WQ_SEQUENCE
最好测试类:
package test.upload; import oracle.spatial.geometry.JGeometry; import org.hibernate.Session; import com.navsys.spatial.JGeometryType; import com.test.vo.User; import junit.framework.TestCase; public class Upload extends TestCase { public void testSave() { JGeometry geometry = null; Session session = null; String s = "测试2"; try { session = HSFUtility.getSession(); session.beginTransaction(); User u = new User(); u.setName(s); double[] coords = { 113.2, 23 }; geometry = JGeometry.createPoint(coords, 2, 1); JGeometryType point = new JGeometryType(geometry); u.setLocation(point); session.save(u); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); throw new java.lang.RuntimeException(); } finally { HSFUtility.closeSession(); } } }
昨晚试了报错如下: 利用了HIbernate Oracle 里的JGeomtry。做映射,可以建数据库,但无法上传数据,报以下错误,谁好心帮我看看啥问题,说是“无效的列类型”:
21:19:55,890 WARN JDBCExceptionReporter:71 - SQL Error: 17004, SQLState: null 21:19:55,906 ERROR JDBCExceptionReporter:72 - 无效的列类型 21:19:55,906 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session org.hibernate.exception.GenericJDBCException: could not insert: [cmsdb.database.Entity.WQ_Vessel_VO] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2202) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at com.database.test.TestUpload.testSave(TestUpload.java:59) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.sql.SQLException: 无效的列类型 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3433) at oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4197) at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:4186) at com.navsys.spatial.JGeometryType.nullSafeSet(JGeometryType.java:141) at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:146) at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1932) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2178) ... 27 more org.hibernate.exception.GenericJDBCException: could not insert: [cmsdb.database.Entity.WQ_Vessel_VO] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2202) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at com.database.test.TestUpload.testSave(TestUpload.java:59) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: java.sql.SQLException: 无效的列类型 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3433) at oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4197) at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:4186) at com.navsys.spatial.JGeometryType.nullSafeSet(JGeometryType.java:141) at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:146) at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1932) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2178) ... 27 more
发表评论
-
求助:Hibernate Integer问题
2011-01-15 10:43 2071Exception in thread "AW ... -
(转)Oracle数据库的迁移方法
2010-03-04 22:26 1077(转)Oracle数据库的迁移方法 本文转自:http:// ... -
转载:Oracle exp/imp备份(导出/导入备份)
2010-03-04 22:02 1600转载:Oracle exp/imp备份( ... -
Oracle 数据进行迁移
2010-03-04 22:00 909来源:中国it实验室 我们常常需要对数据进行迁移,迁移到更加 ... -
奇怪问题:Hibernate 无法更新(update)
2010-01-31 17:18 1598今天遇到一个很奇怪的问题,我用Hibernate,更新(upd ... -
从EXCEL导入数据到数据库,查询不到。
2010-01-22 16:01 1069public Object queryProvinceByNa ... -
JComboBox数据库连接 “省市县”三级联动显示
2009-11-30 21:13 2114iFrmPrProvice = new JComboBox() ... -
JComboBox组件如何能和数据库连接
2009-11-30 10:29 1090// ======================自动搜索 ... -
利用 Hibernate 储存经纬度 到 Oracle 的三种方法
2009-08-11 10:55 1714利用 Hibernate 储存经纬度 到 Oracle 的三种 ... -
分享 HQL 查询日期 Oracle
2009-08-08 21:21 2555今天为了查询Oracle里面的Date的字段,但是Ora ... -
救助:OpenSwing Framework
2009-07-20 19:26 1442最近用到了OpengSwing Framework ... -
hibernate 3.3.1 新特性
2009-07-18 21:05 1504Changes in version 3.3.1.GA (20 ... -
Oracle导入excel数据方法汇总
2009-07-09 17:31 1995摘要:在程序编制过程和数据汇总交换过程中,经常会碰到需要将其他 ... -
发现一个激动人心的网站 Hibernate Spatial
2009-06-28 17:07 1609你是否是开发空间数据库? 利用hibernate oracl ... -
折腾了好久 ORA-00904: : 无效的标识符
2009-06-28 11:48 4665建立完对象模型,用hibernate生成表的时候报错 ... -
oracle bfile blob
2009-06-20 23:53 1457首先,图片是binary格式 ... -
Hibernate查询方法与缓存的关系
2009-06-13 11:24 815在开发中,通 ... -
Hibernate二级缓存攻略
2009-06-13 10:53 933很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇 ... -
Hibernater 一级缓存
2009-06-11 20:48 867Hibernater 一级缓存: Hiberna ... -
org/eclipse/ui/internal/util/SWTResourceUtil
2009-06-11 20:47 3559eclipse3.4关于hibernate tools使用时, ...
相关推荐
总结来说,Oracle数据库结合Oracle Spatial模块,为管理和操作空间数据提供了全面而强大的解决方案,不仅满足了传统的事务处理需求,还能够高效地处理复杂的地理信息和空间分析任务。对于GIS应用和需要处理空间数据...
- **Oracle Spatial:**Oracle数据库的一个扩展模块,专门用于存储和管理空间数据。 **3.2 连接过程** 1. **环境准备:** - 确保安装有支持Oracle Spatial的Oracle数据库版本。 - 安装并配置ArcGIS环境,包括...
本篇将深入探讨如何使用xtreme for Java来连接Oracle Spatial空间数据库,帮助开发者实现高效的数据交互。 首先,了解xtreme for Java。xtreme for Java是一款Java开发工具,它提供了对各种数据库系统的访问接口,...
基于Oracle Spatial空间数据库数据的动态读取 ...通过本文,读者可以了解Oracle Spatial空间数据库的基本概念和功能,以及如何使用VC++ 6.0和MapX集成二次开发来实现对Oracle Spatial空间数据库数据的动态读取。
Oracle Spatial 是 Oracle 数据库的一个组件,专门用于处理和分析地理空间数据。这个组件提供了丰富的功能,包括地理坐标系统的转换、空间查询、空间分析以及地图显示等。在Java开发环境中,Oracle Spatial 提供了...
《Oracle Spatial空间信息管理:Oracle Database 11g》是世界级Oracle Spatial专家Ravi Kothuri、Albert Godfrind和Euro Beinat自力作,旨在向您提供空间信息管理方面的概念知识和实用技能,帮助您成为该领域的专家...
Oracle Spatial是Oracle数据库的一个扩展模块,专为处理地理空间数据而设计。在GIS(地理信息系统)领域,Oracle Spatial被广泛用于存储、管理、查询和分析地理位置相关的数据。本打包资料针对Oracle Spatial空间...
总的来说,"Oracle Spatial用户指南"是学习和使用Oracle Spatial模块的重要参考资料,无论你是初学者还是经验丰富的开发者,都能从中获取到详尽的指导和实践建议,以实现高效的空间数据库开发。
Oracle Spatial 是 Oracle 数据库的一个扩展模块,专门用于处理地理空间数据。这个压缩包"oracle spatial.zip"包含了关于这个模块的开发文档,特别是针对 GeoRaster 的部分,GeoRaster 是 Oracle Spatial 提供的一种...
《Pro Oracle Spatial for Oracle Database 11g》是一本深入探讨Oracle Spatial特性的专业书籍,专...通过阅读本书并实践相关示例,你可以有效地利用Oracle Spatial解决复杂的空间数据问题,提升GIS应用的质量和效率。
通过Oracle Spatial9i,GIS开发者能够更加便捷地管理空间数据,并利用Oracle数据库的强大功能来实现高效的查询和分析。对于需要处理大量空间数据的应用场景来说,Oracle Spatial9i无疑是一个非常有价值的选择。
Oracle Spatial可以与Oracle数据库集成,提供了一个完整的矢量空间数据管理解决方案。该系统可以应用于各种GIS系统,提供了一个强大的事务机制和灵活的数据管理机制。 Oracle Spatial的优点包括: * 兼顾对象...
Oracle Spatial是Oracle数据库企业版中的一个扩展模块,专门用于处理和管理空间数据。它提供了一整套工具和服务,使得在数据库中存储、查询、分析和可视化地理信息变得可能。Oracle Spatial支持多种空间数据模型,...
《Oracle Spatial Developer's Guide》是Oracle公司为开发者提供的一份详尽指南,专注于其空间数据库解决方案——Oracle Spatial。Oracle Spatial是Oracle数据库的一个扩展模块,它提供了处理地理空间数据的能力,...
Oracle Spatial是甲骨文公司推出的空间数据管理解决方案,其核心是一组专门针对Oracle数据库中空间元素的SQL模式、函数集以及空间索引机制。Oracle Spatial允许对空间数据进行存储、检索、更新和查询操作,是处理...
基于Oracle Spatial的城市规划用地数据库的设计与实现 本文主要讨论了基于Oracle Spatial的城市规划用地数据库的设计与实现。Oracle Spatial是一个强大的空间数据库管理系统,能够存储和管理大量的空间数据,具有...
书中涵盖了Oracle数据库中空间信息管理的所有内容。主要阐述了空间信息管理的主要概念,Oracle Spatial的架构,以及大量用于管理空间数据的函数和操作。详细描述了Oracle Spatial所提供的用于存储、检索、分析和可视...
【描述】:本文主要探讨了如何利用MapX组件访问Oracle Spatial空间数据库,同时介绍了在使用EasyLoader工具上传空间数据时可能出现的问题及其解决方案。 【标签】:Oracle数据库,关系型数据库,参考文献,专业指导...
Oracle Spatial允许用户将空间数据(如地理位置、地图图形等)与传统的属性数据(如人口统计、车辆信息等)一起存储在同一个数据库中,从而实现数据的一体化管理和分析。 【智能交通系统(ITS)与空间数据库】 ...
Oracle Spatial 是 Oracle 数据库的一个重要...总之,Oracle Spatial 是一个功能强大的空间数据库解决方案,为处理地理空间信息提供了全面的工具集。通过深入学习和实践,可以充分利用其潜力来解决各种地理空间问题。