sysbase过程调用方式

package minusyhd;

import java.io.UnsupportedEncodingException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
public class CopyOfMinusYHD {
private static String driverName= "com.sybase.jdbc4.jdbc.SybDataSource";
//192.168.40.159,4018
private static String url = "jdbc:sybase:Tds:127.0.0.1:7001/card?charset=cp850";
private static String username = "sa";
private static String password = "";
static
{
try{
Class.forName(driverName);
}catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
public Connection getConnection()
{
Connection myConnection = null;
try {
myConnection = DriverManager.getConnection(url, username, password);
}catch (Exception ex) {
ex.printStackTrace();
}
return myConnection;
}


/**
* 释放数据库连接
*/
public static void release(Connection conn, Statement cs, ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(cs != null){
try {
cs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
getDataFromMasterMultiResultSet();
}
/**
IF OBJECT_ID ('dbo.Pro_getSudent') IS NOT NULL
DROP PROCEDURE dbo.Pro_getSudent
GO

create procedure Pro_getSudent
(
@startIndex INT,
@endIndex INT ,
@errorCode INT output,
@errorMsg VARCHAR(255) output
)
as
begin
PRINT 'create temp table'
create table #pageTemp
(
ID numeric(15,0) IDENTITY,
nid int
)
set rowcount @endIndex
insert into #pageTemp(nid) select ID from T_STUDENT ORDER BY ID
select @errorCode=1,@errorMsg='用于测试的error message 信息'
select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
and t.ID>=@startIndex
end
GO
*/
public static void getDataFromMasterInBetweenOutAndSelect() throws UnsupportedEncodingException
{
CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
Connection conn = null;
CallableStatement cs = null;
ResultSet rs = null;
try
{
conn = mySybaseTest.getConnection();
cs = conn.prepareCall("{call Pro_getSudent(?,?,?,?)}");
cs.setInt(1, 1);
cs.setInt(2, 5);
cs.registerOutParameter(3, Types.INTEGER);
cs.registerOutParameter(4, Types.VARCHAR);
cs.execute();
System.out.println("3:"+cs.getInt(3));
System.out.println("4:"+new String(cs.getString(4).getBytes("ISO-8859-1")));
rs = cs.executeQuery();
while(rs.next())
{
System.out.println(new String(rs.getString(2).getBytes("ISO-8859-1")));
}
}
catch (SQLException ex)
{
ex.printStackTrace();
}
finally
{
release(conn,cs,rs);
}
}



/**
IF OBJECT_ID ('dbo.Pro_getSudent2') IS NOT NULL
DROP PROCEDURE dbo.Pro_getSudent2
GO

create procedure Pro_getSudent2
(
@startIndex INT,
@endIndex INT ,
@errorCode INT output,
@errorMsg VARCHAR(255) output
)
as
DECLARE
@aaa VARCHAR(1)
begin
PRINT 'create temp table'

create table #pageTemp
(
ID numeric(15,0) IDENTITY,
nid int
)
--SELECT @aaa = @startIndex
set rowcount @endIndex
insert into #pageTemp(nid) select ID from T_STUDENT ORDER BY ID

select @errorCode=1,@errorMsg='用于测试的error message 信息'

select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
and t.ID>=@startIndex

select O.ID,O.name from T_STUDENT O,#pageTemp t where O.ID=t.nid
and t.ID>=@startIndex ORDER BY O.name DESC
end
GO
*/
public static void getDataFromMasterMultiResultSet() throws UnsupportedEncodingException
{
CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
Connection conn = null;
CallableStatement cs = null;
ResultSet rs = null;
try
{
conn = mySybaseTest.getConnection();
cs = conn.prepareCall("{call Pro_getSudent2(?,?,?,?)}");
cs.setInt(1, 1);
cs.setInt(2, 5);
cs.registerOutParameter(3, Types.INTEGER);
cs.registerOutParameter(4, Types.VARCHAR);
// cs.execute();
cs.executeQuery();//或者cs.execute();
System.out.println("ee:"+cs.getInt(3));
System.out.println("ff:"+cs.getString(4));
rs = cs.executeQuery();
while(rs.next())
{
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
}
System.out.println("=================");
if(cs.getMoreResults())
{
System.out.println("ddd");
rs = cs.getResultSet();
while(rs.next())
{
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
}
}
}
catch (SQLException ex)
{
ex.printStackTrace();
}
finally
{
release(conn,cs,rs);
}
}


public static void getStudent()
{
CopyOfMinusYHD mySybaseTest = new CopyOfMinusYHD();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try
{
conn = mySybaseTest.getConnection();
st = conn.createStatement();
rs = st.executeQuery("SELECT * FROM T_STUDENT");
while(rs.next())
{
System.out.println(rs.getInt(1));
if(null==rs.getString(2))
{
System.out.println("dddddddddddd");
}
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
}
catch(Exception e)
{
System.out.println("搬数据异常");
e.printStackTrace();
}
finally
{
release(conn,st,rs);
}
}
}



http://blog.csdn.net/rubyzhudragon/article/details/5049571
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值