On 04/11/2010 07:50, sasidhar prabhakar wrote:
> We are using struts and following DAO pattern.
>
> This is the code
>
>
> public String getCountryName(long ipSum){
> String name = null;
> Connection connection = null;
> PreparedStatement pstmt = null;
> ResultSet rs = null;
>
> try{
> connection = dataSource.getConnection();
> pstmt = connection.prepareStatement("select country_name from
> ip_to_geo where ? between ip_from and ip_to");
That query looks like a candidate for being slow to me.
> pstmt.setString(1, ""+ipSum);
Minor: but pstmt.setString(1, String.valueOf(ipSum)) would be better.
Slightly less minor, is the question, why are you converting a long to a
string and then attempting to conduct a range operation on it?
There's another method: pstmt.setLong(1, ipSum) which might work, unless
your DB tables are strangely constructed.
p
> rs = pstmt.executeQuery();
> if( rs.next() ){
> name = rs.getString(1);
> }
>
> }catch(Exception ex){
> ex.printStackTrace();
> }finally{
> try{if( rs!=null)rs.close();}catch(SQLException
> ex){ex.printStackTrace();}
> try {if( pstmt != null)pstmt.close();} catch (SQLException ex)
> {ex.printStackTrace();}
> try {if( connection != null)connection.close();} catch
> (SQLException ex) {ex.printStackTrace();}
> connection = null;
> pstmt = null;
> rs = null;
> }
>
> return name;
>
> }
>
0x62590808.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
