`
wang_zhi_peng2007
  • 浏览: 253830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sybase过程生成主键序列及java调用过程

 
阅读更多

sybase过程生成主键序列及java调用过程:

 

    用sybase做一个跟Oracle序列功能相同的东东,方便移植使用

 

  1.创建序列保存表

 

----创建序列生成表

DROP TABLE dbo.AMS_YJ_MANAGE_SEQ
GO
----序列生成记录表
CREATE TABLE dbo.AMS_YJ_MANAGE_SEQ  ( 
	YJ_TYPE	varchar(64) NOT NULL,
	YJ_NAME	varchar(64) NULL,
	YJ_MAX 	int NOT NULL,
	USER_ID	int NULL,
	CONSTRAINT AMS_YJ_MANAGE_SEQ_PK PRIMARY KEY NONCLUSTERED(YJ_TYPE)
	WITH max_rows_per_page = 0, reservepagegap = 0
	)
LOCK ALLPAGES
GO
INSERT INTO dbo.AMS_YJ_MANAGE_SEQ(YJ_TYPE, YJ_NAME, YJ_MAX, USER_ID)
  VALUES('AMS_YJ_COMVAN_SEQ', '应急通信车', 10017, NULL)
GO

 

2. 创建序列生成存储过程 (@TYPE_MAX    返回参数)

DROP PROCEDURE dbo.YJ_MANAGE_GET_MAX
GO
CREATE PROCEDURE dbo.YJ_MANAGE_GET_MAX( @YJ_TYPE VARCHAR(256),  @TYPE_MAX INT OUTPUT) AS
 ---序列生成器
BEGIN    
      DECLARE @MAX_BAK INT
           SELECT @MAX_BAK = YJ_MAX+1 from AMS_YJ_MANAGE_SEQ WHERE YJ_TYPE=@YJ_TYPE
          IF @MAX_BAK<>0
           BEGIN
             UPDATE AMS_YJ_MANAGE_SEQ SET  YJ_MAX=YJ_MAX+1  WHERE YJ_TYPE=@YJ_TYPE
           END
          SELECT @TYPE_MAX= @MAX_BAK   
       RETURN  @TYPE_MAX                                                                                                                                                                                                                                                                                                         
END
GO

 

3. java调用

 

 /**
      * 取当前应急类型的最大编号
      * @return
      */
 	public int getYjManagerMax(String yj_type) {
     	int isSyn= 0;
         CallableStatement cStmt = null;
         String sqlStr = "{call dbo.YJ_MANAGE_GET_MAX(?,?)}";
         try {
 			cStmt = conn.prepareCall(sqlStr);
 			cStmt.setString(1,yj_type);
 			cStmt.registerOutParameter(2,java.sql.Types.INTEGER);
             cStmt.execute();
             isSyn= cStmt.getInt(2);  ----返回的序列号
             System.out.println("yyyyyy====="+isSyn);
 		} catch (SQLException e) {
 			e.printStackTrace();
 			isSyn= -1;
 		} finally {
             DBManager.closeDBStatement(cStmt);
         }
         return isSyn;
     }

 

 

 

 

 

分享到:
评论

相关推荐

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

    Sybase数据库系统,作为一款企业级的关系型数据库管理系统,提供了与Java语言的集成,使得开发人员可以在存储过程中调用外部Java程序,这对于无需依赖系统服务器进行定时任务调度的情况尤其有用。本文将详细介绍如何...

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

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

    Sybase存储过程的建立和使用

    ### Sybase存储过程的建立和使用 #### 一、存储过程概述 Sybase的存储过程是一种预先定义并编译好的SQL脚本,集中存储在SQL Server数据库中。它结合了SQL语句和流程控制语句,能够实现复杂的业务逻辑处理。存储...

    Java连接Sybase数据库的jar包

    Java连接Sybase数据库的jar包,已通过本人测试。能用的哦~~~

    sybase 实现分页的存储过程

    ### Sybase 中实现分页技术的存储过程 #### 背景介绍 Sybase 是一款高性能的关系型数据库管理系统,广泛应用于金融、电信等对数据处理性能有极高要求的领域。在实际的应用场景中,常常需要从数据库中获取大量的数据...

    java+数据库依赖+sybase.rar

    Java编程语言与数据库之间的交互是开发企业级应用的关键部分,特别是在使用像Sybase这样的高性能数据库管理系统时。在Java中,我们通常使用JDBC(Java Database Connectivity)API来连接和操作数据库。Sybase作为一...

    Sybase数据库存储过程的建立和使用

    Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由 SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理,指示调用成功或失败;...

    sybase存储过程

    存储过程是由一个或多个SQL语句组成的程序,它们在Sybase数据库中存储并由用户通过SQL命令调用执行。与单独的SQL语句相比,存储过程具有可重用性,可以减少网络流量,提高系统性能,并且能够更好地封装数据库操作,...

    java远程连接sybase数据库完整示例

    本示例将深入探讨如何使用Java Database Connectivity (JDBC) API来实现这一目标,以及解决过程中可能遇到的问题。 首先,理解Java的JDBC API是关键。JDBC是Java中用于与各种类型数据库进行交互的一套标准接口和类...

    Sybase驱动(Java)

    jconn4驱动对Sybase IQ的支持意味着开发者可以利用Java编写高效的数据分析应用程序,直接连接到Sybase IQ服务器,执行复杂的查询和报表生成任务。 6. 使用与配置: 在Java应用程序中,使用Sybase驱动通常涉及以下...

    hibernate中自动生成主键的办法

    在Hibernate中,可以使用`&lt;generator class="sequence"&gt;`来指定使用Sequence作为主键生成策略,并通过`&lt;param name="sequence"&gt;SEQ_CHILD&lt;/param&gt;`来指定具体的序列名称。这种方式适用于需要生成大量连续主键值的...

    jconn4 jdbc连接sybase驱动

    本文将深入探讨`jconn4`驱动、其在Sybase环境中的作用以及如何使用它来建立Java到Sybase的连接。 `jconn4.jar`是`jconn4`驱动的主要组件,它包含了所有必要的类和资源,使得Java程序能够通过JDBC接口与Sybase ...

    sybase java 驱动

    标题中的“sybase java 驱动”指的是Java应用程序连接Sybase数据库时所需的一个关键组件,即数据库驱动程序。在Java编程中,为了与不同类型的数据库进行交互,我们需要特定的 JDBC(Java Database Connectivity)...

    sybase分页存储过程(代码)

    sybase分页存储过程(代码),分页存储过程代码,实现sybase数据库分页查询。

    sybase的存储过程编写经验和方法

    在IT领域,特别是数据库管理与开发中,Sybase作为一个历史悠久且功能强大的数据库系统,其存储过程(Stored Procedure)的编写技巧与方法对于提高数据库性能、确保数据安全性以及简化复杂操作流程具有重要意义。...

    Sybase数据库SQL过程详解

    ### Sybase数据库SQL过程详解 #### 系统过程概述 Sybase数据库中的系统过程是预定义的过程,主要用于管理和查询数据库的内部信息。...理解这些存储过程的工作原理和使用方法对于有效管理Sybase数据库至关重要。

    sybase存储过程范例

    sybase整体过程范例,在进行编程的时候可能有用,供大家参考。

Global site tag (gtag.js) - Google Analytics