Sybase中使用JAVA函数

 在SYBASE12.5或者更久以前的版本都是不支持函数,但是有些时候我们又需要一些函数,而不仅仅是过程,这里有可以采用JAVA实现,并且写JAVA肯定比写存储过程要好多了,JAVA处理数据的能力或者是类型,会让SYBASE增不少光彩。以下是网上找到的一篇文章,详细介绍如何在SYBASE中使用JAVA,但我先说明一点,我现在用的是12.5.4这个版本,也提示开启JAVA功能成功,但是去不能够将JAR文件提交到数据库,也许这样与操作系统或者是数据库版本的问题。

-----------------------------------------------------

我用过12.5也是从Sybase网站下下载的(开发版,并发数有限制的),应该可以开发java存储函数的。
1 首先,要先允许数据库支持JAVA的特性。
  sp_configure “enable java”,1
1> sp_configure "enable java",1

2> go

Parameter Name                 Default     Memory Used Config Value

         Run Value   Unit                 Type

------------------------------ ----------- ----------- ------------

        ----------- -------------------- ----------

enable java                              0           0           1

                   0 switch               static

 

(1 row affected)

Configuration option changed. Since the option is static, Adaptive Server must

be rebooted in order for the change to take effect.

Changing the value of 'enable java' to '1' increases the amount of memory ASE

uses by 6482 K.

(return status = 0)

 

2 重新启动Sybase数据库。NT下面,可以通过控制面板->管理工具->服务来重启。

3 好了,下面,我们来简单地开发一个JAVA程序,然后看看sybase的T-SQL是如何调用的。

java程序

package sam;

 

public class HelloWorld

{

public String  Hello()

{

       return "HelloWorld";

}

 

}

4 编译并且打包上面这个java程序。

javac sam/*.java

jar cf0 sam.jar sam/*.class

5 安装java包到数据库中,用sybase提供的instjava程序,这个程序会随着sybase安装的时候,一起安装的。要说明的是,NT和unix命令名称不一样。unix下是installjava ,Windows NT下是instjava 。

instjava -f "E:/工作目录/Sybase/java/sam.jar" -new -j -S sam -U sa -P -D Northwind

6 在Sybase的Transaction-SQL中调用Hello方法

1> select (new sam.HelloWorld())>>Hello()

2> go

 

--------------------------------------------------

HelloWorld

我们可以看到,sybase基本采用了类似java语法,因此,java程序员应该很容易使用。

7 下面,我再谈谈第二个特性(java对象类型)的开发应用。

package sam;

 

public class Address implements java.io.Serializable

{

private String varCity;

private String varCountry;

private String varZip;

private String varHome;

 

public Address(String mCity,String mCountry,String mZip,String mHome)

{

    varCity=mCity;

    varCountry=mCountry;

    varZip=mZip ;      

    varHome=mHome;

}

 

public String City()

{

   return varCity; 

}

 

public String Country()

{

   return varCountry;  

}

 

public String HomeAddress()

{

   return varHome;     

}

 

public String Zip()

{

   return varZip;  

}

 

public void ModifyAddress(String mCity,String mCountry,String mZip,String mHome)

{

    varCity=mCity;

    varCountry=mCountry;

    varZip=mZip ;      

    varHome=mHome;

      

}

 

}

8 编译,打包,安装后。现在,我们就可以直接使用这个java对象类型。

建一个表,数据库字段类型是一个java类。

注意:可以作为数据库字段类型的java类,必须implements了java.io.serializable接口。

1> create table emps (

2>         empno int,

3>         name varchar(30),

4>         addr sam.Address default new sam.Address

5>             ('Not known', '','','')

6> )

7> go

1> alter table emps add constraint pk_emps primary key(empno)

2> go

操作并使用java类型的字段。

1> insert into emps(empno,name) values(1,'TOM')

2> go

(1 row affected)

1> insert into emps values(2,'BOB',

2> new sam.Address('Shanghai','china','200132','1169,nanjin road'))

3> go

(1 row affected)

 

1> begin

2> declare @A sam.Address

3> select @A=addr from emps where empno=2

4> select @A>>Country(),@A>>City(),@A>>HomeAddress(),@A>>Zip()

5> end

6> go

 

--------------------------------------------------

         --------------------------------------------------

         --------------------------------------------------

         --------------------------------------------------

china

         Shanghai

         1169,nanjin road

         200132

本文出自:冯立彬的博客




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值