Guest User

Untitled

a guest
Apr 11th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. def configure_jdbc
  2. driver = @config[:driver].to_s
  3. user = @config[:username].to_s
  4. pass = @config[:password].to_s
  5. url = @config[:url].to_s
  6.  
  7. unless driver && url
  8. raise ArgumentError, "jdbc adapter requires driver class and url"
  9. end
  10.  
  11. if driver =~ /mysql/i
  12. div = url =~ /\?/ ? '&' : '?'
  13. url = "#{url}#{div}zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false"
  14. @config[:url] = url
  15. end
  16.  
  17. JdbcDriver.load(driver)
  18.  
  19. info = java.util.Properties.new;
  20. info.put("user", user)
  21. info.put("password", pass)
  22.  
  23. require 'jruby'
  24. require 'java'
  25. rubycl = JRuby.runtime.getJRubyClassLoader
  26. =begin
  27. params = java.lang.Class[3].new
  28. params[0] = java.lang.Class.forName('java.lang.String')
  29. params[1] = java.lang.Class.forName('java.util.Properties')
  30. params[2] = java.lang.Class.forName('java.lang.ClassLoader')
  31. method = Jdbc::DriverManager.java_class.declared_method('getConnection', params)
  32. =end
  33. methods = Jdbc::DriverManager.java_class.declared_class_methods.find_all { |m| m.name == 'getConnection' }
  34. # HACK: since we can't get the direct lookup of the method above
  35. method = methods[3]
  36. method.accessible = true
  37. low_level_con = method.invoke_static(java.lang.String.new(url).java_object, info.java_object, rubycl.java_object)
  38. set_connection ::Java.java_to_ruby(low_level_con)
  39. #set_connection Jdbc::DriverManager.getConnection(url, user, pass)
  40. end
Add Comment
Please, Sign In to add comment