Read from a Database
            Updated: Feb 21, 2022 
        
        
        
    This example shows you how to read a database table in Java using the JdbcReader class.
This example can easily be modified to show how to write to a database.
Database Input
Thedp_credit_balance database table is used as input.
Java Code Listing
package com.northconcepts.datapipeline.examples.cookbook;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.northconcepts.datapipeline.core.DataEndpoint;
import com.northconcepts.datapipeline.core.DataReader;
import com.northconcepts.datapipeline.core.Record;
import com.northconcepts.datapipeline.jdbc.JdbcReader;
public class ReadFromADatabase {
    public static final Logger log = DataEndpoint.log; 
    public static void main(String[] args) throws Throwable {
        // connect to the database
        Driver driver = (Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
        Properties properties = new Properties();
        properties.put("user", "scott");
        properties.put("password", "tiger");
        Connection connection = driver.connect("jdbc:odbc:dp-cookbook", properties);
        DataReader reader = new JdbcReader(connection, "SELECT * FROM dp_credit_balance")
            .setAutoCloseConnection(true);
        reader.open();
        try {
            Record record;
            while ((record = reader.read()) != null) {
                log.info(record);
            }
        } finally {
            reader.close();
        }
    }
}
Code Walkthrough
- A JDBC Driver is created and a Connection is obtained to the database from which the data is to be read, this is standard JDBC code.
 - A JdbcReader is created using the 
using the Connection object and the query string to query the database i.e. 
SELECT * FROM dp_credit_balance. - The JdbcReader.setAutoCloseConnection method is invoked to automatically close the Connection.
 - The reader is opened via reader.open method.
 - A while loop iterates through the input data.
 - Each record is read as a Record object and printed to the console via the Datapipeline logger.
 - After the while loop completes, the reader.close method is invoked in a finally block to close the JdbcReader.
 
JdbcReader
JdbcReader is an input reader that is used to read from a database. It is 
created using  Connection object, query string and/or other object parameters.
It is a sub-class of DataReader and overrides the 
open,
close,
read among other methods in order to handle database access.
An important method is the setAutoCloseConnection
which when invoked with a true value instructs the JdbcReader to close the 
Connection when its close 
method is invoked.
Console Output
The output of this code is the contents of the dp_credit_balance table displayed on the standard console.
