java程序操作Geometry对象
Geometry 空间地理对象,Oracle中存储Geometry对象的字段类型是 MDSYS.SDO_GEOMETRY,在数据库中构建Geometry对象的方法:
v_pointarray MDSYS.sdo_ordinate_array;
MDSYS.SDO_GEOMETRY(2003,
20131028,
null,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 1),
v_pointarray);
其中 20131028是空间参考系。
在java程序中如何读写带有Geometry对象的表呢,常用的geotools工具包。在maven工程中引用jar包jts-1.13.jar
读取Geometry对象
在java映射的数据库表实体类对象的字段中添加Geometry类型,如下:
@Column(name = "GEOM")
private Geometry geom;
这样就能读取到Geometry 对象,Geometry 有很多空间计算方法,具体可以查看源码。
写入Geometry对象
相对于读取,写入就相对麻烦一些,首先要构建一个Geometry对象,分点线面的构建:
private GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);
点的构建
Envelope e = new Envelope(new Coordinate(x, y));
线的构建
LineString line = geometryFactory.createLineString(Coordinate[]);
line.setSRID(20131028);
rb.setGeometry(line);
其中,rb实体类对象的Geometry的定义格式如下:
@Column(name = "PKG_CONVEX", jdbcType = JdbcType.STRUCT)
private Geometry geometry;
一定要指定jdbcType 类型,Oracle数据库中Geometry对象只接收STRUCT类型的数据。
java程序操作Geometry对象的更多相关文章
- Java程序操作数据库SQLserver详解
数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...
- Java多线程操作同一个对象,线程不安全
Java多线程操作同一个对象 发现问题:多个线程操作同一资源的情况下,线程不安全,数据紊乱 代码: package multithreading; // Java多线程操作同一个对象 // 买火车票的 ...
- 大数据-09-Intellij idea 开发java程序操作HDFS
主要摘自 http://dblab.xmu.edu.cn/blog/290-2/ 简介 本指南介绍Hadoop分布式文件系统HDFS,并详细指引读者对HDFS文件系统的操作实践.Hadoop分布式文件 ...
- 数据库SQL Server2012笔记(七)——java 程序操作sql server
1.crud(增删改查)介绍:create/retrieve/update/delete 2.JDBC介绍 1)JDBC(java database connectivity,java数据库连接) 2 ...
- Java程序操作Hive
1.hive的lib+jdbc,还要把mysql的连接驱动加载过来 2.编写程序 开启远程服务:[root@zhiyou ~]# hiveserver2 &[1] 4127[root@zhiy ...
- Java程序操作HBase
package com.zy.test; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import ...
- Java程序操作HDFS
1.新建项目2.导包 解压hadoop-2.7.3.tar.gzE:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境下编译\hadoop-2.7.3\ha ...
- JAVA程序操作hbase的Maven配置pom.xml文件
由于工作需要,用到Java连接Hbase读写数据.原来的方式是直接将依赖的jar包全部下载下来,然后工程里面引用. 现想重构下,改为使用Maven管理,遇到了各种坑,各种不好使,特总结下. <d ...
- redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)
平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 Red ...
随机推荐
- html中表格的制作
<table summar="给表格添加摘要".> <captioan> 给表格添加标题 </caption> <tr> <t ...
- scala操作符&运行
---恢复内容开始--- #操作符运算 数学操作符 + - * / % 比较操作符 < > >= =< 逻辑操作符 && || 对等操作符 == != 位操 ...
- vs2010边调试边编辑后台.cs文件的办法
方法一:在web项目的属性页里的web标签页,选中“启用编辑并继续”项 方法二:菜单 工具+选项+调试+编辑并继续,选中“启用编辑并继续”项. 设置完之后,调试web项目的时候可以直接修改.cs文件, ...
- 手机版 div拖动
<!doctype html> <html> <head> <title></title> <script type="te ...
- python第二十天-----Django补充
学习python已经20天了啊,从一个不萌萌哒的战5渣升级到了一个萌萌哒的战5渣 1.分页(这是一个很通用的模块,不论在任何框架里都可以使用哦) class Page(object): def __i ...
- code project 上的内存管理的示例代码
/******************************************************************** created: 2014/03/17 18:53 file ...
- H5表单中placeholder属性的字体颜色问题
最近做项目的时候遇到的一些小样式问题,有关表单.并且在接下来几天的面试人中五个人都没有回答上来,改变placeholder属性的默认字体颜色,感觉有必要总结一下. 如何改变默认字体的颜色? @blue ...
- 开源PLM软件Aras详解六 角色与用户以及权限
在Aras中,角色(Identity),用户(Users),权限(Permissions),分别为3个ItemType,Permissions依赖与Identity,Identity可依赖与User. ...
- bc:linux下命令行计算器
在linux下,存在一个命令行的计算器:bc.该程序一般随发行版发布. bc计算器能够执行一些基本的计算,包括+,-,×,\,%. 这些计算不经针对十进制,还可以使用二进制,八进制,十六进制,并且可以 ...
- c# datagridview 中DataSource的使用总结
由于当前项目的窗体更新使用的是订阅事件的方式.其中有个datagridview 动态显示统计数据的列表框.本来想用textbox显示,但不规则,看起来也不美观,改由dgv显示. 我没打算用改dgv表的 ...