db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Ebersole <st...@hibernate.org>
Subject Java stored procedure performing insert/update/delete
Date Thu, 01 Aug 2013 00:02:01 GMT
I am trying to work out how to define a Java stored procedure using 
Derby that performs a insert/update/delete and results in the proper 
"update count" on the JDBC client.  But I have so far been unsuccessful.

Here is what I have...

First, through JDBC I execute:

create procedure deleteAllUsers()
language java
external name 'TheClass.deleteAllUsers'
parameter style java

TheClass.deleteAllUsers looks like:

public static void deleteAllUsers() {
     Connection conn = DriverManager.getConnection( 
"jdbc:default:connection" );
     PreparedStatement ps = conn.prepareStatement( "delete from t_user" );
     int count = ps.executeUpdate();
     System.out.println( "Count : " + count );
     ps.close();
     conn.close();
}

And on the JDBC client side:

Connection conn = ...;
CallableStatement stmnt = conn.prepareCall( "{call deleteAllUsers()}" );
// yes I know this could be stmnt.executeUpdate()...
stmnt.execute();
int count = stmnt.getUpdateCount();


So the deleteAllUsers() prints the correct count.  But on the client, I 
always get zero (and not -1).

Obviously I am doing something wrong.  Any pointers?

Thanks,
Steve

Mime
View raw message