You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Deepak Suldhal <dt...@yahoo.com> on 2005/03/09 22:53:23 UTC

need to query database in tapestry - please help.

 Hi
I have a form which has a datepicker and a radiogroup
consisting of 3 choices. user enters date and selects
on of the option and submits ok. based on which radion
button is on I present the next page. All this works
good.

I now just want to add one small function to this
before proceeding to the next page I just want to see
the count of records in the table. And this is where I
have problems,

I do not want to display anything on the form from
database. I just want to query and see if there are
records.

Please help me contruct this code. As it has to be in
production very soon.

Here is what I have tried. 

package com.test.fin46; 
import org.apache.tapestry.IRequestCycle; 
import org.apache.tapestry.html.BasePage; 

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.util.Date; 
public class Home extends BasePage {         private Date date;         public static final int _Mortgage = 1;         public static final int _LC       = 2;         public static final int _BOTH     = 3;                 private int misses = 3;         private String error = "";         private String errorMsg;         private int _count;         public void detach() {                 misses = 3;                 error = null;                 super.detach();         }         public int getMisses() {                 return misses;         }         public void setMisses(int value) {                 misses = value;         }         /**          * @return Returns the date.          */         public Date getDate() {                 return date;         }         /**          * @param date The date to set.          */         public void setDate(Date date) {                 this.date = date;         }         public String getError() {                 return error;         }        
 public boolean getHasError() {                 if ((error == null) || (error.length()== 0)) {                         return (false);                 }                 return (true);         }         public void formSubmit(IRequestCycle cycle) {                 if (misses == 0) {                         error = "Please select a game difficulty.";                         return;                 }                                 if (getDate()==null) {                         errorMsg = "Please Enter a Valid Date";                         return;                         }                 //Here I want to query the database and see if thereare records for processing only then I would like toproceed to next page.                 try                 {                         DatabaseManager dm = new DatabaseManager();                         Connection con = dm.getConnection();                                                 String myquery  = "select count(*) as current_count from
 pslwrkdb..fin46_instmt";                         PreparedStatement pstmt = null;                         ResultSet rs = null;                         try {                                 pstmt = con.prepareStatement(myquery);                                 rs = pstmt.executeQuery();                                 while(rs.next())                                 {                                         _count =       rs.getInt("current_count");                                                                         }                         }                         catch (SQLException se) {                               				//System.out.println(se.getMessage());                         }                         finally {                                 if (pstmt != null) {                                         try {                                               pstmt.close();                                         }                                         catch(SQLException
 ex1) {                                                ex1.printStackTrace();                                         }                                 }                                 if (rs != null) {                                         try {                                                rs.close();                                         }                                         catch (SQLException ex1) {                                               ex1.printStackTrace();                                         }                                 }                                 if (con != null) {                                         try {                                               //oppslogger.info("Releasing Connection ");                                                con.close();                                         }                                         catch(SQLException ex2) {                                              ex2.printStackTrace();             
                            }                                 }                         }                 }                 catch (Exception e) {                         errorMsg = "Error occured while reading the database";                 }                 if ( _count == 0) {                         errorMsg = "Data is not yet ready Please try later";                         return;                         }                                                 if (misses == 1){                 cycle.activate("Mortgage");                 }                 if (misses == 2){                         cycle.activate("LC");                         }                 if (misses == 3){                         cycle.activate("BOTH");                         }                         }         /**          * @return Returns the errorMsg.          */                 public String getErrorMsg() {                 return errorMsg;         }         } and my driver manager ispackage com.test.fin46;
 import java.sql.Connection; import java.sql.Driver; import java.sql.SQLException; import java.util.Properties; import java.sql.DriverManager; public class DatabaseManager {          private static Connection con = null;          //Constructor          public DatabaseManager() {             // create connection object con here             if (con == null) {               try {                 Driver d = (Driver)Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();                Properties props = new Properties();                 props.put("user", "deepak");                 props.put("password", "password");                 props.put("server","jdbc:sybase:Tds:re2188sr1/pslwrkdb");                 con =DriverManager.getConnection("jdbc:sybase:Tds:re2unx188:2025",props);              }               catch (Exception e) {                 System.out.println("class not found1");                 System.out.println(e.getMessage());                
 System.out.println(e.toString());               }             }           }                    //method get the connection          public static Connection getConnection() {             return con;           }          //method close the the connection          public void closeConnection() {             try {               con.close();             } catch (SQLException sqle) {               System.out.println("Exception in closing connection");             }           } } 



		
---------------------------------
Celebrate Yahoo!'s 10th Birthday! 
 Yahoo! Netrospective: 100 Moments of the Web