class Purview::RawConnections::JDBC::Base

Attributes

last_sql[R]
last_statement[R]

Private Instance Methods

delete_or_insert_or_update?(sql) click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 9
def delete_or_insert_or_update?(sql)
  delete?(sql) || insert?(sql) || update?(sql)
end
execute_sql(sql, opts={}) click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 13
def execute_sql(sql, opts={})
  @last_sql = sql
  @last_statement = statement = raw_connection.createStatement
  if select?(sql)
    statement.executeQuery(sql)
  elsif delete_or_insert_or_update?(sql)
    statement.executeUpdate(sql)
    nil
  else
    statement.execute(sql)
    nil
  end
end
extract_rows(result) click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 27
def extract_rows(result)
  if result
    metadata = result.getMetaData
    column_count = metadata.getColumnCount
    [].tap do |rows|
      while result.next
        rows << {}.tap do |row|
          (1..column_count).each do |index|
            column_name = metadata.getColumnName(index)
            row[column_name] = result.getString(column_name)
          end
        end
      end
    end
  end
end
extract_rows_affected(result) click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 44
def extract_rows_affected(result)
  delete_or_insert_or_update?(last_sql) ? last_statement.getUpdateCount : 0
end
new_connection() click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 48
def new_connection
  java.sql.DriverManager.getConnection(
    url,
    username,
    password
  )
end
url() click to toggle source
# File lib/purview/raw_connections/jdbc/base.rb, line 56
def url
  raise %{All "#{Base}(s)" must override the "url" method}
end