class Patriot::Util::DBClient::MySQL2Client

NOT thread safe

Public Class Methods

new(dbconf) click to toggle source

@param dbconf [Hash] dbclient configuration

# File lib/patriot/util/db_client/mysql2_client.rb, line 16
def initialize(dbconf)
  conf = dbconf
  conf[:port] = dbconf[:port].to_i
  @connection = Mysql2::Client.new(conf)
end

Public Instance Methods

build_insert_query(tbl, value, option = {}) click to toggle source

@see Patriot::Util::DBClient::Base#build_insert_query

# File lib/patriot/util/db_client/mysql2_client.rb, line 28
def build_insert_query(tbl, value, option = {})
  option = {:ignore => false}.merge(option)
  cols, vals = [], []
  value.each do |c,v|
    cols << c
    vals << quote(v)
  end
  if option[:ignore]
    return "INSERT IGNORE INTO #{tbl} (#{cols.join(',')}) VALUES (#{vals.join(',')})"
  else
    return "INSERT INTO #{tbl} (#{cols.join(',')}) VALUES (#{vals.join(',')})"
  end
end
close() click to toggle source

@see Patriot::Util::DBClient::Base#close

# File lib/patriot/util/db_client/mysql2_client.rb, line 55
def close()
  @connection.close unless @connection.nil?
end
do_insert(query) click to toggle source

@see Patriot::Util::DBClient::Base#do_insert

# File lib/patriot/util/db_client/mysql2_client.rb, line 43
def do_insert(query)
  @connection.query(query)
  return @connection.last_id
end
do_select(query) click to toggle source

@see Patriot::Util::DBClient::Base#do_select

# File lib/patriot/util/db_client/mysql2_client.rb, line 23
def do_select(query)
  return @connection.query(query).map{|r| HashRecord.new(r)}
end
do_update(query) click to toggle source

@see Patriot::Util::DBClient::Base#do_update

# File lib/patriot/util/db_client/mysql2_client.rb, line 49
def do_update(query)
  @connection.query(query)
  return @connection.affected_rows
end
quote(v) click to toggle source

@see Patriot::Util::DBClient::Base#quote

# File lib/patriot/util/db_client/mysql2_client.rb, line 60
def quote(v)
  return 'NULL' if v.nil?
  return "'#{v.to_s}'" if v.is_a?(DateTime) || v.is_a?(Time)
  val =  (v.is_a?(String) ? "'#{Mysql2::Client.escape(v)}'" : v)
  return val
end