java result set

S

Sarath

Hi,

I have a doubt.
Is there a way that allows me to get all the values of a column from a
java.sql.ResultSet in an array .
I can loop on the resultset and add each of the values to an array.
But is there method to do this by default i.e., a method from
java.sql.ResultSet ???

right now what i m doing is
rs i my ResultSet containing the output of the query.

i =0;
int arr[] = new int [];
while(rs.next()){
int val = rs.getInt(1);
arr = val;
i++;
}

I checked in javadoc but i didnt find one.
what i want is a method that will return me the array if i pass a
resultset and columnIndex to it.


Thank you,
Sarath.B
 
M

Manish Pandit

JDBC ResultSet essentially works off of a single row pointer. What that
means is, at a given point in time, you can only operate on a "single"
row in a resultset. Sure you can move the pointer back and forth based
on the scrollable settings, but thats pretty much it. You will have to
keep doing rs.next() to iterate through the whole result set.

-cheers,
Manish
 
S

steve

Hi,

I have a doubt.
Is there a way that allows me to get all the values of a column from a
java.sql.ResultSet in an array .
I can loop on the resultset and add each of the values to an array.
But is there method to do this by default i.e., a method from
java.sql.ResultSet ???

right now what i m doing is
rs i my ResultSet containing the output of the query.

i =0;
int arr[] = new int [];
while(rs.next()){
int val = rs.getInt(1);
arr = val;
i++;
}

I checked in javadoc but i didnt find one.
what i want is a method that will return me the array if i pass a
resultset and columnIndex to it.


Thank you,
Sarath.B
, but you had better keep it generic

then I am afraid you will have to write one.
, but you had better keep it generic, do not assume that you will always
play with 'int'
use an array of objects and return rs.object(n) as in

record = rset.getObject(1 + i);

to return 1 record

and

record = rset.getObject(1 + i);

// COPY THE DATA TO A LOCAL ARRAY OF THE RIGHT SIZE
}

loop++;

Arraydata.add(record);

to return an array of records.

Do not type convert in your get routines. if later you need to code reuse or
modify your table, you will seriously be buggered up, ESP. if you change the
order of your select statement.

keep your record data & type intact, and only convert for input or display,
then when you go to put it back into the database , it will slide right in,
because you have not "type" converted your data.
Do not assume that just because you can get an int from the database, that
you can automatically put an int back.

Steve
 
S

Sarath

steve said:
Hi,

I have a doubt.
Is there a way that allows me to get all the values of a column from a
java.sql.ResultSet in an array .
I can loop on the resultset and add each of the values to an array.
But is there method to do this by default i.e., a method from
java.sql.ResultSet ???

right now what i m doing is
rs i my ResultSet containing the output of the query.

i =0;
int arr[] = new int [];
while(rs.next()){
int val = rs.getInt(1);
arr = val;
i++;
}

I checked in javadoc but i didnt find one.
what i want is a method that will return me the array if i pass a
resultset and columnIndex to it.


Thank you,
Sarath.B
, but you had better keep it generic

then I am afraid you will have to write one.
, but you had better keep it generic, do not assume that you will always
play with 'int'
use an array of objects and return rs.object(n) as in

record = rset.getObject(1 + i);

to return 1 record

and

record = rset.getObject(1 + i);

// COPY THE DATA TO A LOCAL ARRAY OF THE RIGHT SIZE
}

loop++;

Arraydata.add(record);

to return an array of records.

Do not type convert in your get routines. if later you need to code reuse or
modify your table, you will seriously be buggered up, ESP. if you change the
order of your select statement.

keep your record data & type intact, and only convert for input or display,
then when you go to put it back into the database , it will slide right in,
because you have not "type" converted your data.
Do not assume that just because you can get an int from the database, that
you can automatically put an int back.

Steve


Yes , I agree.

The method has to be generic.

Thanks for the comments.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top