Package org.jzonic.jlo.handler

Source Code of org.jzonic.jlo.handler.JDBCHandler

package org.jzonic.jlo.handler;

import org.jzonic.jlo.LogRecord;
import org.jzonic.jlo.error.ErrorHandler;
import org.jzonic.jlo.formatter.tokens.TokenParser;

import java.util.Map;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
* @author Andreas Mecky andreas.mecky@xcom.de
* @author Terry Dye terry.dye@xcom.de
*
*/
public class JDBCHandler extends AbstractHandler {

    private String insertSQL;
    private TokenParser tp = new TokenParser();
    private Connection con;
    private String jdbcDriver;
    private String jdbcURL;
    private String jdbcUser;
    private String jdbcPassword;

    public JDBCHandler(String configName) {
        super(configName);
    }

    public void publish(String msg) {
    throw new UnsupportedOperationException("no supported");
  }

    public Connection getConnection() {
        try {
            Class.forName(jdbcDriver);
        }
        catch (Exception e) {
            ErrorHandler.reportError("Could not load driver", e);
        }
        try {
            if ( con == null) {
                con = DriverManager.getConnection(jdbcURL, jdbcUser,jdbcPassword);
            }
            return con;
        }
        catch (Exception e) {
            ErrorHandler.reportError("Error while establishing connection", e);
        }
        return null;
    }

    public void closeConnection(Connection con) {
    }

  public void publish(LogRecord lr) {
        // get the sql command
    String sql = tp.parseLine(lr,insertSQL);
        // execute sql
        Connection con = null;
        try {
            con = getConnection();
            if ( con != null ) {
                Statement stmt = con.createStatement();
                stmt.executeUpdate(sql);
                stmt.close();
            }
        }
        catch (SQLException e) {
            ErrorHandler.reportError("Error while running insert query", e);
        }
        closeConnection(con);
  }

  public void setParameter(Map parameters) {
    if ( parameters.containsKey("sql")) {
            insertSQL = (String)parameters.get("sql");
        }
        if ( parameters.containsKey("user")) {
            jdbcUser = (String)parameters.get("user");
        }
        if ( parameters.containsKey("password")) {
            jdbcPassword = (String)parameters.get("password");
        }
        if ( parameters.containsKey("driver")) {
            jdbcDriver = (String)parameters.get("driver");
        }
        if ( parameters.containsKey("url")) {
            jdbcURL = (String)parameters.get("url");
        }
  }

}
TOP

Related Classes of org.jzonic.jlo.handler.JDBCHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.