文档章节

JDBC中调用sybase存储过程

wangxuwei
 wangxuwei
发布于 2016/03/27 00:16
字数 270
阅读 155
收藏 1

例子中用到的表t123及存储过程test_proc的创建见博文:

http://my.oschina.net/u/2245781/blog/646323


package www.zjptcc.wxw.jdbctest.syb;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
 
public class TestSp1 {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        try {
            Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
            String url = "jdbc:sybase:Tds:localhost:5000/testdb";// 数据库名
            Connection conn = DriverManager.getConnection(url, "mymotif","wxwpxh");
            
            /*   test_proc(@id_min int, @num_t123 int output))是将表t123中的id字段中大于等于第一个参数@id_min
             的数目统计好,放到第二个参数@num_t123(输出参数)    */
            String procedure = "{ call test_proc(?, ?)}";
            CallableStatement statement = conn.prepareCall(procedure);
            //通过 setXXX 方法将IN参数传给@id_min,其中第一个1是参数的索引值,第二个1是传给@id_min的值
            statement.setInt(1, 1);
            //registerOutParameter注册输出参数@num_t123,输出参数的索引值是2
            //参数的索引值是根据占位符?出现的次序从左到右由1开始计,不管其是输入还是输出参数
            statement.registerOutParameter(2,Types.INTEGER);
            statement.execute();
            //打印输出参数@num_t123的值
            System.out.print(statement.getInt(2));
            
            conn.close();
        } catch (SQLException sqe) {
			System.out.println("Unexpected exception : " + sqe.toString()
					+ ", sqlstate = " + sqe.getSQLState());
			System.exit(1);
			} catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
 
}

© 著作权归作者所有

wangxuwei
粉丝 27
博文 345
码字总数 138776
作品 0
杭州
其他
私信 提问
JDBC连接各种数据库的字符串

JDBC连接各种数据库的字符串大同小异,在此总结一下,备忘。 oracle driverClass:oracle.jdbc.driver.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mysql driverClass:com...

长平狐
2012/08/27
887
0
jOOQ 1.5.8 发布,Java的ORM框架

Java的ORM框架 jOOQ 1.5.8 发布。该版本增加了两个重要的新的RDBMS被支持:SQL Server 和 Sybase。 There is now full support for the non-SQL standard LIMIT clause, even in dialects wh......

小卒过河
2011/04/30
806
2
如何在Oracle中使用Java存储过程 (详解)

其实,这篇短文,我早就应该写了。因为,java存储过程今后在各大数据库厂商中越来越流行,功能也越来越强大。这里以Oracle为例,介绍一下java存储过程的具体用法。 任何转载,请尊重版权。(...

晨曦之光
2012/04/12
154
0
jdbctemplate调用存储过程

项目需要使用原生态的jdbc调用存储过程,写法如下,备忘一下 首先声明一个存储过程 CREATE DEFINER = @ PROCEDURE (in par1 varchar(1000),in par2 varchar(100),in par3 varchar(200),in p...

王小明123
2013/06/17
3K
0
JDBC驱动下载及各种数据库的连接字符串URL写法

各种数据库的JDBC驱动下载及连接字符串URL写法 sun官方网站上的JDBC驱动列表:http://java.sun.com/products/jdbc/reference/industrysupport/index.html 数 据 库 说 明 MySQL http://www.m...

余路
2012/05/03
244
0

没有更多内容

加载失败,请刷新页面

加载更多

重庆哪里有开住宿费发票

重庆哪里有开住宿费发票【微电 : 1 3 5 * 4 4 2 8 * 6 8 6 2 】刘生-经.营.范.围.广█无需打开直接联系█点击上方“衡水发布” 可以订阅哦!郭台铭...

haa123
28分钟前
4
0
//编程:输入一个数n,然后输入n个数,求:(1)n个数的平均值; //(2)n个数中的最大值。用do while 写

#include<stdio.h> int main() { int n,i=0,x,Max=0; float y=0,aver; printf("输入一个数:\n"); scanf("%d",&n); do{ printf("输入一个数:\n"); scanf("%d",&x); y+=x; i++; if(x>Max){ Ma......

201905021729吴建森
33分钟前
5
0
拥抱 Elasticsearch:给 TiDB 插上全文检索的翅膀

作者介绍:孙晓光,知乎技术平台负责人,与薛宁(@Inke)、黄梦龙(@PingCAP)、冯博(@知乎)组队参加了 TiDB Hackathon 2019,他们的项目 TiSearch 获得了 CTO 特别奖。 “搜索”是大家在使...

TiDB
48分钟前
8
0
错误日志04(PSSecurityException之PowerShell权限设置)

Windows下PowerShell默认的权限级别是Restricted,不允许执行PS脚本(即.ps1文件)。如果在Restricted权限级别下运行,会得到错误信息: vue : 无法加载文件 C:\Users\29506\AppData\Roaming...

庭前云落
51分钟前
6
0
获取实例的类名?

如果我从中执行此操作的函数是实例的类派生的基类,如何找出在Python中创建对象实例的类的名称? 想到也许检查模块可能在这里帮助了我,但它似乎没有给我我想要的东西。 如果没有解析__class...

技术盛宴
53分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部