• Post Reply Bookmark Topic Watch Topic
  • New Topic

URLyBird Data find(String[]) method  RSS feed

 
Cathal Mullan
Ranch Hand
Posts: 120
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey Guys,

for my URLyBird project when I provide search details for the Hotel Name & Location I am to provide EXACT results from the DB. However in the Comments on the DB interface it says the find(String[]) method will return results where the DB fields BEGIN with the search criteria.

To get around this discrepancy I am planning to create an interface that extends the DB interface with a findExact(String[]) method. I will implement the find(String[]) method also but not actually use it.

Just wondering if anybody who has already passed the exam did this instead of using the predefined find(String[]) method?

cheers
 
Roel De Nijs
Sheriff
Posts: 11338
177
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I also created an extra interface (extending the given one), but I didn't add a findExact-method. I just filtered the results from the find-method in my business layer. I added an extra find-method which returns a map with record numbers and String[] pairs. So I didn't use the predefined find-method and passed
 
Cathal Mullan
Ranch Hand
Posts: 120
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cheers Roel, I had contemplated doing that also, it makes more sense to get back the exact results needed like you would using a proper database. But I suppose I should use the method they have defined & log my reason in my choices.txt,

cheers for your advice
 
Jim Hoglund
Ranch Hand
Posts: 525
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cathal: There is no discrepancy in the specification. It is asking for
a typical "wild-card" search capability. This is consistent with saying
that a blank criteria field should match all values of that field. In the
extreme, a find() where all the criteria strings are blank should return
all the data rows. In a real example from the URLyBird hotel data,
the single search character "p" for the hotel name field, should return
7 rows; the three Palace hotels plus four Pandemonium hotels.

Jim ...
 
Cathal Mullan
Ranch Hand
Posts: 120
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cheers for the reply Jim. What your saying makes sense. Don't think I'm going to risk it though. There is a must requirement that says ".. records where the name and/or location fields exactly match the values specified by the user" but the doc above the find() method says ".. A non-null value in criteria[n] matches any field value that begins with criteria[n]... ". So a subtle difference there. Just don't want to risk getting an automatic failure,

Cheers for your input though
 
Roel De Nijs
Sheriff
Posts: 11338
177
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I implemented my find-method just as Jim says: passing "p" for the hotel name field will result in 7 records returned by the find-method. Entering the "p" in the hotel name search field in the gui will result in an empty table, because there is no hotel at all that has "p" as name.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!