`

一种Java调用Sybase存储过程实现取前N条数据的方法

阅读更多
一.在Sybase中创建存储过程如下:
drop procedure getPageWiseData
go
 
create procedure getPageWiseData  
(  
@sqlStr varchar(8000),  
@start int,  
@limit int 
)  
as  
DECLARE @dt varchar(10)    --生成临时表的随机数  
BEGIN  
 
--# variable to hold the first row number of the page.  
SELECT @dt= substring(convert(varchar, rand()), 3, 10)    --一个字符型的随机数  
 
SELECT @sqlStr = stuff(@sqlStr, 1, 7, 'select rownum=identity(12), ')  
SELECT @sqlStr = stuff(@sqlStr, charindex(' FROM ', upper(@sqlStr)), 6 ,' into tempdb..Lining' + @dt + ' from ')  
execute (@sqlStr)  
 
--# select the data with the calculated range for first and last row on page.  
select @sqlStr = 'select * from tempdb..Lining' + @dt + ' where rownum >= '+convert(varchar, @start)+' and rownum < '+convert(varchar, (@start+@limit))   
execute (@sqlStr)  
 
--删除临时表  
SELECT @sqlStr = 'DROP TABLE tempdb..Lining'+@dt 
EXECUTE (@sqlStr)   
END
  
二.用jdts驱动调用Sybase数据库
public class JdbcSybaseProcedure {
 public static void main(String[] args) {
  Connection conn = null;
  CallableStatement cs = null;
  try {
   Class.forName("net.sourceforge.jtds.jdbc.Driver");
   conn = DriverManager.getConnection("jdbc:jtds:sybase://192.9.190.98:4100/inner_dbs", "emp", "empemp");
   //下面的意思要调用那个存储过程,存储过程名字是getPageWiseData;
   cs = conn.prepareCall("{call getPageWiseData(?,?,?)}");
   cs.setString(1, "select * from lps_mst order by pan");
   cs.setInt(2, 1);
   cs.setInt(3, 5);
   //执行存储过程
   ResultSet rs = cs.executeQuery();
   while(rs.next()) {
    System.out.println(rs.getString("pan"));
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    cs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }finally {
    cs = null;
   }
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }finally {
    conn = null;
   }
  }
 }
}
 
分享到:
评论

相关推荐

    sybase数据库存储过程调用外部JAVA

    总之,Sybase数据库支持通过存储过程调用外部Java程序,提供了一种灵活的方式来实现数据库中的复杂计算和任务调度。正确配置数据库环境,导入Java类,创建适当的SQL包装器,是实现这一功能的关键步骤。理解JNI调用...

    Java调用带参数的存储过程并返回集合

    本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle存储过程是一种预编译的SQL语句集合,它可以在数据库服务器端执行,提高性能,减少网络传输。`PROCEDURE.sql`...

    Java操做Sysbase存储过程

    在IT行业中,数据库管理和操作是不可或缺的一部分,而Java作为一种广泛使用的编程语言,常常被用于与各种数据库进行交互。本篇文章将深入探讨如何使用Java来操作Sysbase存储过程,这是一个非常实用的技术点,对于...

    java + sybase 定时ftp文件上传

    接下来是Sybase,它是一种关系型数据库管理系统,常用于企业级的数据存储和处理。在描述中提到的定时执行SQL语句,这可能涉及到数据库的日常维护操作,如数据备份、统计分析或是定期更新数据。Java可以通过JDBC...

    Sybase ASE 12.5 Adaptive Server Enterprise中的Java.pdf

    - **调用Java存储过程**:与传统的T-SQL存储过程类似,只需要使用EXECUTE命令即可调用已经定义好的Java存储过程。 ##### 2.2 Java触发器 Java触发器是一种特殊的Java存储过程,当特定的数据库事件发生时自动执行。...

    oracle 数据导入sybase

    在进行数据迁移时,JAVA和JDBC提供了一种灵活且跨平台的解决方案。JDBC是Java平台上的标准API,用于与各种类型的数据库进行交互。它允许开发者编写不依赖于特定数据库系统的代码,只需针对不同数据库提供相应的JDBC...

    Sybase驱动(Java)

    Sybase是一种高性能的企业级数据库管理系统,尤其在金融、电信等对数据处理有高要求的领域广泛应用。本知识点将深入探讨Sybase驱动,特别是针对Java开发的jconn2, jconn3, 和jconn4驱动。 1. Sybase驱动介绍: ...

    jconn4 jdbc连接sybase驱动

    `jconn4`是Sybase公司提供的一种JDBC(Java Database Connectivity)驱动,主要用于帮助Java应用程序与Sybase数据库进行交互。本文将深入探讨`jconn4`驱动、其在Sybase环境中的作用以及如何使用它来建立Java到Sybase...

    SYBASE ASE 15.0-ASE中的 Java

    - **AdaptiveServer Anywhere**:一种轻量级的数据库服务器,可与ASE配合使用,为Java应用程序提供数据存储服务。 - **DataWindow**:一个强大的数据表示和报告工具,支持Java环境,帮助开发者快速构建复杂的数据...

    sybase分页代码使用jdbc分页速度快适合大数据

    Java中的分页实现通常有两种方法:一种是使用存储过程,另一种是使用纯Java代码。这里我们讨论的是后者,因为它更灵活且无需额外的数据库对象。使用Java代码实现分页的关键在于维护一个游标(cursor)和一个缓存...

    sybase库中导出全部表的oracle、mysql和sybase的建表语句

    通常,这可以通过使用数据库的元数据查询功能实现,比如使用`sp_help`存储过程或者SQL查询来获取表的结构信息。在Java环境中,可以利用JDBC(Java Database Connectivity)API编写程序,连接到Sybase数据库,执行...

    sybase16 ODBC驱动

    ODBC(Open Database Connectivity)是微软推出的一种数据库访问标准,它提供了一种统一的方式来访问不同数据库系统中的数据。Sybase16 ODBC驱动是专为Sybase数据库设计的,允许在Windows 7和Windows 10操作系统上,...

    一些常用数据库存储过程

    ### 一些常用数据库存储过程 在软件开发过程中,数据库存储...存储过程作为一种提高数据库操作效率的重要手段,在实际应用中具有不可替代的作用。希望本文能帮助读者更好地理解和掌握数据库连接及存储过程的相关知识。

    Sybase数据库类型转Java类型

    Sybase是一种关系型数据库管理系统(RDBMS),它提供了多种数据类型,如整数类型(integer, smallint, bigint)、浮点类型(float, real)、字符和文本类型(char, varchar, text)、日期和时间类型(date, time, ...

    sybase驱动jar包 jconn2& jconn3& jconn4

    Sybase是一种知名的数据库管理系统,广泛应用于企业级应用中。在Java开发中,为了与Sybase数据库进行交互,我们需要使用特定的Java Database Connectivity (JDBC) 驱动。本话题将详细阐述`jconn2.jar`, `jconn3.jar`...

    Sybase IQ 15.1 系统管理手册(下)

    存储过程是一种存储在数据库中的预编译 SQL 代码块,它可以接受输入参数、返回输出值,并且能够被多次调用。在 Sybase IQ 15.1 中,存储过程可以极大地提高数据库应用程序的性能和可维护性。 **优点:** - **执行...

    MySQL向Sybase ASE迁移指南

    OLEDB也是一种广泛使用的数据访问技术,适用于Windows平台上的应用程序。 ##### 7.4 JDBC 客户端应用 JDBC是Java平台上的数据库连接技术,用于在Java应用程序中访问关系型数据库。 #### 八、验证数据库服务器迁移...

    sybase数据库jdbc驱动jar包

    Sybase数据库是一款关系型数据库管理系统,广泛应用于企业级的数据存储和管理。在Java编程环境中,如果需要通过Java应用程序连接到Sybase数据库,JDBC(Java Database Connectivity)驱动是必不可少的。"sybase...

    sybase基础知识

    开发人员可以使用各种编程语言(如C、Java、Python等)与Sybase接口,实现数据的存取和处理。Sybase提供ODBC(Open Database Connectivity)和JDBC(Java Database Connectivity)驱动,使得跨平台的数据库应用开发...

    Adaptive Server Enterprise中的Java

    - **Transact-SQL与Java的集成**:ASE提供了一种机制,使得Transact-SQL脚本能够直接调用Java类中的方法。这种方式极大地增强了数据库应用程序的功能性和灵活性。 - **数据类型映射**:为了在Java代码与ASE之间传递...

Global site tag (gtag.js) - Google Analytics