Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate » Other DB  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 POSTGRESQL的JDBC中的存储过程
hzxl





发贴: 169
积分: 40
于 2003-08-31 17:56 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1. 从www.postgresql.org下载最新的postgresql-snapshot.tar.gz, ant from apache;
2. setting ANT_HOME
3. ../configure --with-java; make; make install

FUNCTION 和 JAVA 代码参考了jdbc.postgresql.org mailing list里面的内容.

CREATE TABLE users (id int, name varchar(32));

CREATE OR REPLACE FUNCTION sp_users_select () RETURNS refcursor
AS '
declare ref refcursor;
begin
open ref for select * from users;
return ref;
end;
' LANGUAGE plpgsql;

import java.lang.*;
import java.sql.*;

public class pc
{
public static void main(String[] args)
throws Exception
{
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://localhost:5432/nop";
String user = "nop";
String passwd = "nop";

Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, passwd);

conn.setAutoCommit(false); // return refcursor must within a transaction

CallableStatement proc = conn.prepareCall("{ ? = call sp_users_select () }");
proc.registerOutParameter(1, Types.OTHER);
proc.execute();

ResultSet result = (ResultSet) proc.getObject(1);
System.out.println(result);

while(result.next())
{
System.err.println("Name : " + result.getString(2));
}

conn.commit();
}
}




话题树型展开
人气 标题 作者 字数 发贴时间
12898 POSTGRESQL的JDBC中的存储过程 hzxl 1240 2003-08-31 17:56

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923