Mitchb
Mitchb

Reputation: 159

java jdbc connection - result set output problems

I am currently trying to implement a jdbc connection that returns all the data in a table when i "search" for anything that matches the input with '%input%'.

eg ResultSet rs4 = stm4.executeQuery("select imageTime from image_data where imageName like '%" + value3 + "%' or imageTime like '%" + value3 + "%' or imageLocation like '" + value3 + "'" );

i am trying to return ALL the rows in the result set as search results. but if i have Resultset.next commanded when there is no more rows to go to it causes the following results sets to all null,....

if anything id love a method to output the entire result set, thanks.

EDIT editing the question: to be more direct; i need a way to get every piece of data from each row in each containing column of the result set. so i can output it. This is my attempt of this below.

rs4 = a Resultset as declared below.

here is my code;

if(name_time_location == 1)
        {                
            String value3=searchInput.getText();//Sets the search Input as value3


            // selecting the cominbation from table, that match input options                               
            try{
                con = DriverManager.getConnection("jdbc:mysql:blah blah");

                // Query the database for the correct username and passord                    
                Statement stm3 = con.createStatement();  
                Statement stm4 = con.createStatement();
                Statement stm5 = con.createStatement();


                //queries database for password from input username 
                ResultSet rs3 = stm3.executeQuery("select imageName from image_data    where imageName like '%" + value3 + "%' or imageTime like '%" + value3 + "%' or imageLocation like '" + value3 + "'" );
                //ResultSetMetaData rsmd = rs3.getMetaData();
                //stm3.setFetchSize(5);
                //rs3.last();
                //int numberOfRows = rs3.getRow();


                //String[] resultList; 
                //resultList = new String[numberOfRows];
                // Fetch each row from the result set
                rs3.beforeFirst();
                while(rs3.next())
                {
                    imageSearchResult1 = rs3.getString(1); 
                    rs3.next();
                    imageSearchResult11 = rs4.getString(1);
                    rs3.next();
                    imageSearchResult12 = rs4.getString(1);
                    rs3.next();
                    imageSearchResult13 = rs4.getString(1);
                    rs3.next();
                    imageSearchResult14 = rs4.getString(1); 
                }rs3.close();

            }catch (Exception e)
            {
                    //System.out.println("Exception: " + e + "");
            }

            System.out.println("Search Results: \nName: " + imageSearchResult1 + "         Time stamp: " + imageSearchResult2 + "   Location: " + imageSearchResult3 + "\n" +
                    "Name: " + imageSearchResult11 + "   Time stamp: " + imageSearchResult21 + "   Location: " + imageSearchResult31 + "\n" + 
                    "Name: " + imageSearchResult12 + "   Time stamp: " + imageSearchResult22 + "   Location: " + imageSearchResult32 + "\n" +
                    "Name: " + imageSearchResult13 + "   Time stamp: " + imageSearchResult23 + "   Location: " + imageSearchResult33 + "\n" +
                    "Name: " + imageSearchResult14 + "   Time stamp: " + imageSearchResult24 + "   Location: " + imageSearchResult34 + "\n" );

Upvotes: 0

Views: 2054

Answers (1)

Logan
Logan

Reputation: 2505

I think you can achieve the same thing by modifying the query and instead of creating 3 queries, get the 3 values in the same query as:

select imageName,imageLocation,imageTime from .....

Then use this query to generate the ResultSet and get the three values as rs.getType(1),rs.getType(2),rs.getType(3).

In the same while(rs.next()) loop, you can print the data that you want to print.

Upvotes: 2

Related Questions