`

ruby调用oracle存储过程实例之oracle连接配置

阅读更多
先看一下ruby怎样连接oracle数据库
class External < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :wifi_rms
end


abstract_class 抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。
从establish_connection 进去可见:class ConnectionSpecification类
定义了这个连接查找方法:
 def self.establish_connection(spec = nil)
      case spec
        when nil
          raise AdapterNotSpecified unless defined? RAILS_ENV
          establish_connection(RAILS_ENV)
        when ConnectionSpecification
          @@connection_handler.establish_connection(name, spec)
        when Symbol, String
          if configuration = configurations[spec.to_s]
            establish_connection(configuration)
          else
            raise AdapterNotSpecified, "#{spec} database is not configured"
          end
        else
        ......
        end


这里传入的是database.yml中配置的参数
wifi_rms:
  adapter: oracle
  database: (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = "your ip")(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = "your service")(SERVER = DEDICATED)))
  username: name
  password: password
  encoding: utf8
  host: host_ip
  service: your_service


这样当你要调用oracle库关联的时候直接继承连接类即可实现类持久化到oracle数据库
class ConvenientReportMonth < External
  #继承External类
  #关联表设置
  set_table_name "CONVENIENT_REPORTS_MONTH"
  #表序列设置
  set_sequence_name "seq_convenient_month_id"
 end


最后要说一下的是:
由于rails生产模式下配置的是mysql数据库
development: &config
  adapter: mysql
  encoding: utf8
  database: db_new
  username: root
  password: password
  socket: /tmp/mysql.sock
  host: your_ip
  port: 3306


因此需要调用mysql库的时候只要集成
class Event < ActiveRecord::Base
      #ActiveRecord::Base默认连接库为mysql
end

至此,实现了rails项目中mysql和oracle双库开发工作环境。
0
0
分享到:
评论

相关推荐

    使用Ruby on Rails快速开发web应用的教程实例

    在学习和使用Ruby on Rails的过程中,需要熟悉Ruby语言的语法、面向对象编程以及MVC架构设计。随着Rails的更新和迭代,它引入了许多现代Web开发的新特性,比如RESTful路由、AJAX集成和安全机制等,这些都为开发者...

    Ruby/MaxL-开源

    例如,你可以创建一个Ruby类,封装数据库连接、MaxL会话和命令执行,然后在类的实例方法中调用Essbase的功能。 安装Ruby/MaxL时,通常需要将`maxl.so`库文件放置在Ruby的加载路径中,以便Ruby解释器能够找到并加载...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    jdk1.7-win32位

    1. **多语言支持**: JDK 7增加了对动态语言的支持,引入了 invokedynamic 字节码指令,使得运行时可以灵活地绑定调用点选择器和方法句柄,为脚本语言如JavaScript、Ruby等提供了更好的集成平台。 2. **类型推断**: ...

    EhcacheUserGuide

    这部分内容详细介绍了离堆存储的工作原理、优势以及如何配置和使用离堆存储的具体步骤。 #### 十、JDBC 缓存(JDBC Caching) 对于需要与数据库交互的应用程序,Ehcache支持通过JDBC接口来进行缓存操作。这部分内容...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包7

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    VirtualBoxSDK-5.0.2-102096开发包

    VirtualBox SDK 5.0.2-102096是Oracle公司为开发者提供的一套用于构建和扩展VirtualBox虚拟化平台的软件开发工具包。这个开发包允许程序员通过编程接口(API)来控制和定制VirtualBox的功能,实现虚拟机管理、自动化...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    nashorn.jar

    例如,`ScriptEngineManager`可以用来创建和管理`ScriptEngine`实例,`Invocable`接口允许调用JavaScript函数,等等。 4. **ES6支持**:尽管Nashorn主要针对的是ES5标准,但它对部分ES6特性也有所支持,如箭头函数...

    javaSE代码实例

    6.1.2 面向过程与面向对象思想的对比 78 6.1.3 面向对象技术的背景和特点 79 6.2 类的定义与对象的创建 80 6.3 成员变量 81 6.3.1 成员变量的开发与使用 81 6.3.2 成员变量的初始值 82 6.3.3 对象引用...

Global site tag (gtag.js) - Google Analytics