2013-09-13 5 views
1

Так что я могу использовать этот камень для активной записи: https://github.com/jruby/activerecord-jdbc-adapterJRuby/основное PostgreSQL соединение

Но, я хочу использовать следующий код на JRuby для подключения к унаследованному дб и запустить вручную запросы, как мне делать используя JRuby/Rails 4.0.0?

require 'pg' 
conn = PGconn.connect("192.168.0.2", 5432, '', '', "mydb", "postgres", "password") 

ответ

0

Итак, пример здесь сработал.

https://github.com/jruby/jruby/wiki/JDBC

def vegetableFinder(vegetable) 
    # This function takes a hashmap of vegetables and attempts to 
    # find them from our grocery database. For each item found, we 
    # call our 'makevegetablesoup' function. 

    # Load all required gems 
    require "rubygems" 
    require "jdbc/mysql" 
    require "java" 

    begin 
    # Prep the connection 
    Java::com.mysql.jdbc.Driver 
    userurl = "jdbc:mysql://HOST/DATABASE" 
    connSelect = java.sql.DriverManager.get_connection(userurl, "USERNAME", "PASSWORD") 
    stmtSelect = connSelect.create_statement 

# Define the query 
selectquery = %q{SELECT name, type, size, price 
     FROM vegetables 
     WHERE type = "#{vegetable["type"]}" 
     AND size = "#{vegetable["size"]}} 

# Execute the query 
rsS = stmtSelect.execute_query(selectquery) 

# For each row returned do some stuff 
while (rsS.next) do 
    veg = Hash.new 
    veg["vegname"] = rsS.getObject("name") 
    veg["vegtype"] = rsS.getObject("type") 
    veg["vegprice"] = rsS.getObject("size") 
    veg["vegsize"] = rsS.getObject("price") 
    makevegetablesoup(veg) 
end 
    end 
    # Close off the connection 
    stmtSelect.close 
    connSelect.close 
    return truth 
end 
1

The docs предложить что-то вдоль линий:

# connection setup 
ActiveRecord::Base.establish_connection(
    :adapter => 'jdbc', 
    :driver => 'org.postgresql.Driver', 
    :url => 'jdbc:postgresql:sample_db;create=true' 
) 

Или

ActiveRecord::Base.establish_connection(
    adapter: 'postgresql', 
    database: 'db/my-database' 
) 

Это предполагает, что вы используете JDBC и appropriate configuration. Для этого я предлагаю взглянуть на Postgres' documentation.

проба, там написано в Java:

String url = "jdbc:postgresql://localhost/test"; 
Properties props = new Properties(); 
props.setProperty("user","fred"); 
props.setProperty("password","secret"); 
props.setProperty("ssl","true"); 
Connection conn = DriverManager.getConnection(url, props); 

String url = "jdbc:postgresql://localhost/test?user=fred&password=secret&ssl=true"; 
Connection conn = DriverManager.getConnection(url); 

... но я бы катиться с чем-то вдоль этих линий:

ActiveRecord::Base.establish_connection(
    :adapter => 'jdbc', 
    :driver => 'org.postgresql.Driver', 
    :url => 'jdbc:postgresql:sample_db;create=true' 
    :user => 'myuser' 
    :password => 's3cret!' 
) 

С другой стороны, есть JRuby-PG

С уважением ,

+0

Имея некоторые проблемы с получением какой-либо из этого, чтобы работать .. Будет продолжать пробовать – Brettski

Смежные вопросы