本文详细介绍POSTGRESQL的JDBC中的存储过程
1.从www.postgresql.org下载最新的postgresql-snapshot.tar.gz,antfromapache;
2.settingANT_HOME
3.../configure--with-java;make;makeinstall
FUNCTION和JAVA代码参考了jdbc.postgresql.orgmailinglist里面的内容.
CREATETABLEusers(idint,namevarchar(32));
CREATEORREPLACEFUNCTIONsp_users_select()RETURNSrefcursor
AS'
declarerefrefcursor;
begin
openrefforselect*fromusers;
returnref;
end;
'LANGUAGEplpgsql;
importjava.lang.*;
importjava.sql.*;
publicclasspc
{
publicstaticvoidmain(String[]args)
throwsException
{
Stringdriver ="org.postgresql.Driver";
Stringurl ="jdbc:postgresql://localhost:5432/nop";
Stringuser ="nop";
Stringpasswd ="nop";
Class.forName(driver);
Connectionconn =DriverManager.getConnection(url,user,passwd);
conn.setAutoCommit(false);//returnrefcursormustwithinatransaction
CallableStatementproc=conn.prepareCall("{?=callsp_users_select()}");
proc.registerOutParameter(1,Types.OTHER);
proc.execute();
ResultSetresult=(ResultSet)proc.getObject(1);
System.out.println(result);
while(result.next())
{
System.err.println("Name:"+result.getString(2));
}
conn.commit();
}
}
责编:豆豆技术应用