What's new

Closed Java with mysql - 3 - database connection - refactoring2

Status
Not open for further replies.

codyscott

Eternal Poster
Joined
Sep 13, 2017
Posts
388
Reaction
454
Points
279
Series #3, mga tropa.
- ire-refactor pa natin ng isa pang beses para lang mas simple and madaling basahin ang code.
- it's optional pero ang CONCEPT dito ay readability ng code, madaling intindihin at saka ilagay na natin sa isang sulok ang mga code hindi na kailangan galawin.

(TAKE NOTE: marami pang puwedeng gawin na refactoring ng DB connection like using PROPERTIES, etc o kaya ilagay sa isang utility class, etc, etc..... but for now, this is sufficient)

***Heto yung code*****
***i-compare and MainApp2 from series #2 to this MainApp3***
***para makita ang difference ng refactoring****

Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class MainApp3 {
    static Connection con;
    static Statement statement;
    static ResultSet resultSet;
    static ResultSetMetaData rm;
    static String format = "%-5s %-15s %-15s %-35s %-15s %-15s";     //pampaganda lang
  
    /****************** This is the main entry of application ***************/
    /************Let's keep it clean and easy to read ***********************/
    /*******So ilagay natin sa ibat ibang methods and mga tools natin *******/
    public static void main(String[] args) throws SQLException {
      
        initDB();
        String query = "SELECT * from students";
        performQuery(query);  
      
        //output: print natin yung mga column names (optional)
        printColumNames();
      
        //output: loop and print ang data ng students per row
        while(resultSet.next()){
            System.out.println(String.format(format, resultSet.getLong(1), resultSet.getString(2),
                    resultSet.getString(3), resultSet.getString(4), resultSet.getString(5), resultSet.getString(6) ) );
        }
      
    }
    /*************************end of Main area********************************/
    /*************************************************************************/
  
    static void initDB() throws SQLException {
        String url = "jdbc:mysql://localhost/phpcorner_db";
        String user = "cody";
        String password = "secret";
        con = DriverManager.getConnection(url, user, password);
    }
  
    static void performQuery(String query) throws SQLException {
        statement = con.createStatement();
        resultSet = statement.executeQuery(query);
    }
  
    static void printColumNames() throws SQLException {
        rm = resultSet.getMetaData();  
        System.out.println(String.format(format, rm.getColumnLabel(1), rm.getColumnLabel(2),
                rm.getColumnLabel(3),rm.getColumnLabel(4),rm.getColumnLabel(5),rm.getColumnLabel(6)));
    }
  
}

******NEXT TOPIC, same project, we will look at using OBJECTS para mas malinis ang ating codes. Abangan!
 
Status
Not open for further replies.

Similar threads

Back
Top