title: Passing values to a database via constructor
body: <p>I'm creating an application that has a number of input forms, about 22 of them. I'd like to create one class that saves the form data into the database. The forms will only have to get the textfield values via getters and save the values by calling the database class constructor.</p>
  
  <p><strong>The huddle:</strong><br>
  The database class uses a prepared statement. I'm having trouble passing the part that binds values binto the parameter, the part that looks like:</p>
  
  <pre><code>tmt.setInt(1, 35);  // This would set a value such as age
  stmt.setInt(2, 'Another value');
  </code></pre>
  
  <p>Could anyone have any ideas on how to go about this?</p>
  
  <p>The variables in the constructor mean:
      String data: The various textfield values
      String table: The specific table in the database where the values will be stored
      String sql: The part that binds values binto the parameter (I mentioned this in "The huddle" above)</p>
  
  <p>Here is the database class:</p>
  
  <pre><code>// STEP 1. Import required packages
  import java.sql.*;
  import java.util.List;
  
  public class UpdateAndQuerry {
  
      public static String data;
      public static String table;
      public static String sql;
  
      public UpdateAndQuerry (String data, String table, String sql) {
          this.data = data;
          this.table = table;
          this.sql = sql;
      }
  
      // JDBC driver name and database URL
      static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
      static final String DB_URL = "jdbc:mysql://localhost/EMP";
  
      //  Database credentials
      static final String USER = "username";
      static final String PASS = "password";
  
      public static void main (String[] args) {
          Connection conn = null;
          PreparedStatement stmt = null;
  
          try {
              // STEP 2: Register JDBC driver
              Class.forName("com.mysql.jdbc.Driver");
  
              // STEP 3: Open a connection
              System.out.println("Connecting to database...");
              conn = DriverManager.getConnection(DB_URL,USER,PASS);
  
              // STEP 4: Execute a query
              System.out.println("Creating statement...");
              // String sql = "UPDATE Employees set age = ? WHERE id = ?";
  
              stmt = conn.prepareStatement(sql);
  
              // Bind values into the parameters.
              stmt.setInt(1, 35);  // This would set age
              stmt.setInt(2, 102); // This would set ID
  
              // Let us update age of the record with ID = 102;
              int rows = stmt.executeUpdate();
              System.out.println("Rows impacted : " + rows );
  
              // Let us select all the records and display them.
              sql = "SELECT id, first, last, age FROM Employees";
              ResultSet rs = stmt.executeQuery(sql);
  
              // STEP 5: Extract data from result set
  
              while (rs.next()) {
                  // Retrieve by column name
                  int id  = rs.getInt("id");
                  int age = rs.getInt("age");
                  String first = rs.getString("first");
                  String last = rs.getString("last");
  
                  // Display values
                  System.out.print("ID: " + id);
                  System.out.print(", Age: " + age);
                  System.out.print(", First: " + first);
                  System.out.println(", Last: " + last);
              }
  
              // STEP 6: Clean-up environment
              rs.close();
              stmt.close();
              conn.close();
  
          } catch (SQLException se) {
  
              // Handle errors for JDBC
              se.printStackTrace();
          } catch (Exception e) {
              // Handle errors for Class.forName
              e.printStackTrace();
  
          } finally {
              // finally block used to close resources
              try {
                  if (stmt != null)
                      stmt.close();
              } catch (SQLException se2) {
              } // nothing we can do
              try {
                  if (conn != null)
                      conn.close();
              } catch (SQLException se) {
                  se.printStackTrace();
              } // end finally try
          } // end try
  
          System.out.println("Goodbye!");
      } // end main
  } // end JDBCExample
  </code></pre>