`
linliangyi2007
  • 浏览: 1004416 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

优雅Java编程 之 使用Hibernate存储Oracle Spatial对象

阅读更多
使用Hibernate存储Oracle Spatial对象


在hibernate.cfg.xml文件中做如下设置:
  <!-- dialect for Oracle 10G Spatial -->
<property name="dialect">com.navsys.spatial.OracleSpatialDialect</property>

在对应java bean的ORM文件中,设置属性的java类型为com.navsys.spatial.JGeometryType

  <property name="geoloc" column="GEOLOC" type="com.navsys.spatial.JGeometryType"></property>


以下是使用hibernate保存Geometry的java 代码样例

  
  LBSBusLine busLine = new LBSBusLine();
  ........
  ........
  //Geometry的坐标数组
  double coords = .....
  //构造oracle.spatial.geometry.JGeometry对象
  JGeometry geometry = null;
  geometry = JGeometry.createLinearLineString(coords,2,8307);//保存成为一种线型
  //将oracle.spatial.geometry.JGeometry对象封装成  com.navsys.spatial.JGeometryType对象
   JGeometryType gotmetryType = new JGeometryType(geometry);
   busLine.setGeoloc(gotmetryType);
   .........
   .........
   //通过Hibernate Session保存bean
   session.save(busLine);


由于com.navsys.spatial.JGeometryType是对oracle.spatial.geometry.JGeometry对象使用装饰模式实现了彻底封装,因此,在读取JGeometry属性的操作中,直接使用bean的GET方法即可获得 com.navsys.spatial.JGeometryType型的信息就可以了。

以下附上几个需要的jar包:
(PS:上传jar文件不成功,只好将文件名改为.zip,请各位下载后手动将文件名改回.jar)

  • navsys.jar.zip (8.1 KB)
  • 描述: 实现了Hibernate org.hibernate.usertype.UseType接口的com.navsys.spatial.JGeometryType类
  • 下载次数: 360
  • sdoapi.jar.zip (23 KB)
  • 描述: Oracle Spatial 的Java API包
  • 下载次数: 398
分享到:
评论
4 楼 gao_shengxian 2015-12-10  
Hibernate: update T_GX_TEST set BGSJ=?, BZ=?, DZBM=?, DZFL=?, DZJDZB=?, DZMC=?, DZWDZB=?, DZZTDM=?, JGHDZDX=?, QYSJ=?, SSJLXID=?, SSJZWID=?, SSZDYJGAZZJG=?, SSZDYJXZQH=?, TYSJ=?, WHDWDM=?, WHDWMC=?, WHR=?, ZCSJ=?, SHAPE=? where DZBZ=?
Exception in thread "main" java.lang.ClassCastException: org.apache.commons.dbcp.PoolableConnection cannot be cast to oracle.jdbc.driver.OracleConnection
请问这个怎么解决?修改空间字段报错呢
空间字段类型MDSYS.SDO_GEOMETRY
3 楼 bill_lzh 2014-03-31  
谢谢!!!
2 楼 turnhopes 2013-08-06  
 
1 楼 zjhdreams 2013-04-01  
很不错的哦,谢谢了!

相关推荐

Global site tag (gtag.js) - Google Analytics