class LogStash::DrupalDblogJavaMysqlConnection

A JDBC mysql connection class. The interface is compatible with the mysql2 API.

Public Class Methods

new(host, username, password, database, port = nil) click to toggle source
# File lib/logstash/inputs/drupal_dblog/jdbcconnection.rb, line 12
def initialize(host, username, password, database, port = nil)
  port ||= 3306

  address = "jdbc:mysql://#{host}:#{port}/#{database}"
  @connection = java.sql.DriverManager.getConnection(address, username, password)
end

Public Instance Methods

close() click to toggle source
# File lib/logstash/inputs/drupal_dblog/jdbcconnection.rb, line 62
def close
  @connection.close
end
query(sql) click to toggle source
# File lib/logstash/inputs/drupal_dblog/jdbcconnection.rb, line 19
def query(sql)
  if sql =~ /select/i
    return select(sql)
  else
    return update(sql)
  end
end
select(sql) click to toggle source
# File lib/logstash/inputs/drupal_dblog/jdbcconnection.rb, line 27
def select(sql)
  stmt = @connection.createStatement
  resultSet = stmt.executeQuery(sql)

  meta = resultSet.getMetaData
  column_count = meta.getColumnCount

  rows = []

  while resultSet.next
    res = {}

    (1..column_count).each do |i|
      name = meta.getColumnName(i)
      case meta.getColumnType(i)
      when java.sql.Types::INTEGER
        res[name] = resultSet.getInt(name)
      else
        res[name] = resultSet.getString(name)
      end
    end

    rows << res
  end

  stmt.close
  return rows
end
update(sql) click to toggle source
# File lib/logstash/inputs/drupal_dblog/jdbcconnection.rb, line 56
def update(sql)
  stmt = @connection.createStatement
  stmt.execute_update(sql)
  stmt.close
end