- 浏览: 259835 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
no_studio:
期待实现SqlServer
发布异种数据库导入工具jmyetl-1.0.2 -
babydeed:
不错 再接再厉
发布异种数据库导入工具jmyetl-1.0.2 -
iihero:
niwtsew 写道贴个俺自己写的linux下的版本,其实没必 ...
命令行快速找出class文件所在的jar包 -
niwtsew:
说错,是strings不是string
命令行快速找出class文件所在的jar包 -
niwtsew:
贴个俺自己写的linux下的版本,其实没必要用7z,直接jar ...
命令行快速找出class文件所在的jar包
iihero原创,如若转载,请务必注明出处。
数据库发展到今天, RDBMS( 关系型数据库管理系统 ) 和 ODBMS( 对象数据库管理系统 ) 的界限已经变得模糊了,取而代之的是 ORDBMS( 对象关系型数据库管理系统 ) ,对此, Oracle 和 DB2 早年前都给出了自己的解决方案,即采用类似以下的抽象语法:
create type Point is object
(
x int,
y int,
......
)
Sybase ASE 数据库,发展到现在 15.0.3 ,在语法上,似乎并没有对这种抽象语法的直接支持。它采取的是另一种解决方案,即可以由用户直接定义一个 Java 类,让这个 Java 类直接成为一种抽象类型。那就是 Sybase ASE 数据库的 Java 服务选件,它是一种功能非常强大的组件。
比如,我们要提供一个解决方案,直接支持二维点 Point 类型的存取。怎么实现呢?
<!-- [if !supportLists]-->
- 环境:
<!-- [endif]-->
确定你的 ASE 数据库安装并拥有 Java Options 选项,如何得知呢?从 Sybase Central ,连接到 ASE 服务器,右键 à 属性 à 版本 à 详细信息,可以得到如下信息: ASE_JAVA ,有相应的版本和有效期信息,示例如下图,它支持 Java ,有效期到 2020 年 1 月 20 日 。
除此以外,还得让服务器启动时也支持 Java 。
D:\ASE150>isql -Usa -Psybase1
1> sp_configure "enable java", 1
2> go
(1 row affected)
配置选项改变 . 因为选项是静态的 ,Adaptive Server 必须重启 , 以使改动生效 .
如果将 'enable java' 更改为 '1' , ASE 使用的内存量就能增加 580K 。
(return status = 0)
然后重启 Sybase ASE 数据库,即可生效,开始完全支持 Java 。
- 实现
首先,实现 Point 类。 ASE 支持 Java 对象类型,有一个条件,它必须实现了序列化接口。同时,编译为 class 文件时,编译的目标版本最好是 1.1( 为了保持兼容 ) 。
Point 类的一个简单实现如下:
public class Point implements java.io.Serializable
{
private static final long serialVersionUID = -2550063311147977493L;
public double _x;
public double _y;
public Point()
{
_x = 0;
_y = 0;
}
public Point(double x, double y)
{
_x = x;
_y = y;
}
public Object clone()
{
return new Point(_x, _y);
}
public String toString()
{
return "(" + _x + ", " + _y + ")";
}
public static double distance(Point a, Point b)
{
return (double)Math.sqrt((a._x - b._x)*(a._x - b._x)
+ (a._y - b._y)*(a._y - b._y));
}
public static void main(String[] args)
{
Point a = new Point(1.0, 1.0);
Point b = new Point(5.0, 4.0);
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println(Point.distance(a, b));
}
}
设定好 jdk 路径和 classpath 之后 , 编译打包:
javac -g -target 1.1 *.java
jar -cvf0 Point.jar *.class
-
如下图所示:进入具体的数据库 iihero à Java 对象 à Jar 文件,右键 à 新建,即可把刚才打好的 java 包 Point.jar 装载到数据库 iihero 当中。
面向对象应用的实际效果
D:\ASE150>isql -Uspring -Pspring1
1> use iihero
2> go
创建含对象类型 Point 列的表:
1> create table testpoint(id int primary key, p Point)
2> go
使用对象特性插入数据并查询:
1> insert into testpoint values (1, new Point(1.0, 1.0))
2> insert into testpoint values (2, new Point(5.0, 4.0))
3> insert into testpoint values (3, new Point(6.0, 13.0))
4> go
(1 row affected)
(1 row affected)
(1 row affected)
1> select * from testpoint
2> go
id p
----------- --------------------------------------------------
1 (1.0, 1.0)
2 (5.0, 4.0)
3 (6.0, 13.0)
(3 rows affected)
直接取属性值:
1> select id, p>>_x, p>>_y from testpoint
2> go
id
----------- --------------------------- ---------------------------
1 1.000000 1.000000
2 5.000000 4.000000
3 6.000000 13.000000
(3 rows affected)
查询两点间的距离:
1> select a.id, b.id, Point.distance(a.p, b.p) from testpoint a, testpoint b whe
re a.id < b.id
2> go
id id
----------- ----------- ---------------------------
1 2 5.000000
1 3 13.000000
2 3 9.055385
(3 rows affected)
以距离作为条件查询点 ( 查询两点间距离小于 6.0 的点对 ) :
1> select a.id, b.id from testpoint a, testpoint b where Point.distance(a.p, b.p
) <6.0 and a.id > b.id
2> go
id id
----------- -----------
2 1
(1 row affected)
<!-- [if !supportLists]-->二、 <!-- [endif]-->总结
在到 ASE 数据库服务器内部,它对 Java 类作了如下映射:
select 出对象列的值,就是 Java 对象的 toString() 值。
静态方法可以直接在 select 语句里当作函数进行调用,如上例中的 Point.distance() 方法
直接可以取类的成员值,如果那个成员是公有成员,并且有相应的 SQL 类型映射,如上例中的 p>>_x, p>>_y ,使用 ”>>” 操作符来提取。
按照上述原理,用户完全使用内置的 Java 包实现非常复杂的逻辑,然后在 SQL 语句中直接加以利用。尤其是那种接近于面向对象数据库的应用。
总之,使用内置 Java 支持对对象类型的存取,是一种很直观易用的方法,也便于用户进行扩充。从这个角度来看, Sybase ASE 也可以算是支持面向对象的数据存取了。
发表评论
-
发布异种数据库导入工具jmyetl-1.0.2
2012-06-11 05:14 1735利用空闲时间,折腾了一个,界面不太擅长,比较简陋,但是相信大家 ... -
各种数据库临时表的使用区别总结
2012-05-24 08:22 2452[size=large]虽然SQL92, 99, 2003, ... -
成就企业驾驭大数据浪潮 :Sybase数据分析与管理技术之四大法宝
2012-03-31 19:48 1471IDC预计,到2020年, ... -
常用的数据库连接串(JDBC篇)
2011-12-23 06:58 0看到网上传来传去的jdbc url连接串总结,好多都是粘来粘去 ... -
DBeaver数据库管理工具连接Sybase数据库使用体验
2011-09-26 20:12 7254从http://dbeaver.jkiss.org/下 ... -
Sybase ASA中获取表定义的SQL语句及SP
2011-09-26 17:07 1427ASA功能本来非常强大, 可是不理解为什么没有一个功能强大的描 ... -
Sybase ASE及其它产品的license获取与生成
2011-09-26 10:37 1859在使用正版Sybsase产品的时候,都会根据你机器的hosti ... -
Sybase DBISQL的小奥秘
2011-09-22 22:26 1677目前,在所有Sybase数据库产品里,都使用dbisql来访问 ... -
为Sybase ASE15.x编译安装python-sybase模块
2011-09-21 23:07 1502如果你有陈旧的vs2003编译器,那么这篇短文或者意义不是很大 ... -
Sybase ASE自动清理(备份)事务日志
2011-09-13 12:51 1662ASE数据库,随着日志文件的不断肿胀,如果不及时清理,一旦设备 ... -
SYBASE在SAP中的机会
2011-07-24 04:37 1041Sybase被SAP并购以后,也整合了一段时间了。 看看Syb ... -
SYBASE ASE修复identity 类型字段数据的跳跃(译)
2011-04-21 20:33 1820SYBASE ASE修复identity 类型 ... -
创建了圈子SYBASE圈子
2011-04-15 17:52 819欢迎有兴趣的朋友加入。谢谢。 http://sybase.gr ... -
Sybase ASE创造了新的Linux事务处理纪录
2006-09-09 16:11 844全球最大的致力于信息管理和信息移动技术的企业级软件公司Syba ... -
Sybase ASE的XA Transactions(分布式事务处理)
2006-09-25 22:48 1078ASE支持分布式事务处理,需要一些额外配置。Using XA ... -
关于Sybase ASE数据库的命名来历
2007-02-04 13:49 948前段时间,网上居然有人说没听说过Sybase ASE数据库,s ... -
有关Sybase ASE数据库的几个问题的解答
2008-09-09 17:46 854论坛上有人问及,解答 ... -
Sybase ASE15.0.2 Linux版本从获取到安装全过程(写给初学者)
2008-09-11 14:06 1008很多人,因为很难找到Sybase ASE数据库的下载,因而失去 ... -
Sybase ASE中有用的两个小工具(jisql和ribo)
2008-09-27 11:35 1010声明:请尊重个人劳动,如若转载,务必注明原始出处: iihe ... -
关于Sybase ASE数据库的license以及试用版过期的问题的解决方案
2009-02-18 09:39 1347当用户从Sybase官网上下 ...
相关推荐
SybaseASE15.0 中的JAVA.pdf SybaseASE15.0 分布式事务管理.pdf SybaseASE15.0 参考手册-表.pdf SybaseASE15.0 参考手册_命令.pdf SybaseASE15.0 参考手册_构件块.pdf SybaseASE15.0 参考手册_过程.pdf SybaseASE...
综上所述,SYBASE ASE 15.0 通过引入一系列新功能和技术改进,在提升产品竞争力的同时也更好地满足了不同行业用户的需求。无论是从性能优化、安全性加强还是用户体验方面来看,都体现出了开发团队对于产品质量...
中文版 Sybase ASE15.0 for windows 配置指南
ASE中的JAVA.pdf HA_故障切换.pdf Historical Server.pdf Job Scheduler.pdf Monitor Client.pdf Monitor Server.pdf T-SQL用户指南.pdf WEB服务.pdf XML服务.pdf 全文本搜索引擎.pdf 分布式事务管理.pdf 参考手册-...
在ASE 15.0中,对Java的支持是其重要特性之一,这标志着SYBASE致力于为用户提供更为现代、灵活的数据库管理体验。通过集成Java,ASE能够更好地与当前流行的开发语言和框架协同工作,从而满足企业级应用对于跨平台、...
#### 五、ASE 15.0 在企业级应用中的优势 - **稳定性**: 经过多年的技术积累和完善,ASE在大型企业环境中表现出色。 - **可扩展性**: 能够轻松应对数据量增长带来的挑战,支持水平和垂直扩展。 - **集成性**: 与...
### SYBASE ASE 15.0 词汇表详解 #### AdaptiveServer Enterprise (ASE) AdaptiveServer Enterprise (ASE),是Sybase公司开发的一款高性能的企业级数据库管理系统。ASE 15.0作为该系列的一个重要版本,提供了强大...
SYBASE ASE 15.0-安装指南(jconnig605_ZH)
### SYBASE ASE 15.0-XML 服务解析 #### 概述 SYBASE Adaptive Server Enterprise (ASE) 15.0 是一款高性能的关系型数据库管理系统,由Sybase公司开发,现为SAP公司旗下产品。ASE 15.0在数据库管理领域拥有卓越的...
**Sybase ASE参考手册概述** Sybase Adaptive Server Enterprise...通过这四卷全面的参考手册,读者将能够深入理解Sybase ASE的功能、特性和最佳实践,从而更好地管理和优化数据库系统,解决实际工作中的各种挑战。
### SYBASE ASE 15.0 - 配置指南核心知识点 #### 1. AdaptiveServer Enterprise (ASE) 15.0 ...以上内容基于SYBASE ASE 15.0配置指南中的核心知识点,旨在为用户提供全面的配置指导,确保数据库系统的高效稳定运行。
### Sybase ASE 15.5 Transact-SQL 用户指南知识点概述 #### 一、Adaptive Server Enterprise (ASE) 概述 - **版本信息**:文档为Sybase ASE 15.5版本的Transact-SQL用户指南,文档ID为DC32970-01-1550-01,最后...
在ASE 15.0中,执行系统过程可以使用Transact-SQL(T-SQL)语句,这是一种扩展了SQL语法的语言,专门用于ASE 15.0的数据库操作。通过T-SQL,用户可以执行一系列的命令来启动系统过程,这些命令会被数据库引擎解释...
Sybase Adaptive Server Enterprise(ASE),作为一款高性能的企业级数据库管理系统,自1989年推出以来,一直致力于为用户提供可靠的数据管理解决方案。Sybase ASE 15.0版本的优化,主要围绕提高数据库性能和响应...
**Sybase ASE ODBC Driver 下载** Sybase ASE(Adaptive Server Enterprise)ODBC(Open Database Connectivity)驱动程序是连接到Sybase ASE数据库的关键组件,它允许应用程序通过标准的ODBC接口与Sybase数据库...
Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) 使用7-zip解压
综上所述,**SYBASE_ASE 15.7.0 for Windows 64bit客户端**凭借其卓越的性能表现、强大的安全功能以及灵活的扩展能力,在企业级数据库应用中占据着重要地位。无论是对于新部署项目还是现有系统的升级替换而言,都是...
Sybase ASE 12.5.4 ODBC驱动包, 4.0.x 版本 将zip解到d:\\sybasease目录下边,然后注册下边的内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] ...
ASE 15.0版本在数据库管理和应用开发方面提供了丰富的功能和工具,以下是对该版本中的几个核心知识点的详细解析: ### ASE 15.0架构 ASE 15.0采用了多层次、模块化的架构设计,包括存储引擎层、事务处理层、查询...