zoukankan      html  css  js  c++  java
  • Ruby on rails开发从头来(四十三) ActiveRecord基础(连接数据库)

      Active Record抽象了数据库连接的概念,帮助应用程序来处理底层的数据库链接的细节,作为替代,Active Record使用通用的调用,将细节委托给一组数据库适配器。

    可以使用establish_connection( )方法来制定连接,下面的例子创建了一个mysql数据库连接,数据库的名字是railsdb,服务器的Host名为dbserver.com,用户名为railsuser,密码为railspw

    ActiveRecord::Base.establish_connection(

    :adapter => "mysql",

    :host => "dbserver.com",

    :database => "railsdb",

    :username => "railsuser",

    :password => "railspw"

    )

    Active Record支持DB2MySqlOraclePostgresSqlServer,以及SqlLite,每一种数据库适配器在链接的参数上都有一些细小的差别,下表列出了常用的参数:


        注意
    Oracle适配器的名字为oci

     

    数据库连接和Model类是关联的,每个类都从父类那里继承了链接,ActiveRecord::Base作为所有的Active Record类的父类,设置这里的数据库连接就给所有的活动记录类设置了链接,当然,如果需要的话,你也可以复写(override)链接配置。

    下面的例子里,我们的大多数表都在MySql数据库中,库名为online,由于一些历史原因,customers表在名为backend的数据库中,

    ActiveRecord::Base.establish_connection(

    :adapter => "mysql",

    :host => "dbserver.com",

    :database => "online",

    :username => "groucho",

    :password => "swordfish")

    class LineItem < ActiveRecord::Base

    # ...

    end

    class Order < ActiveRecord::Base

    # ...

    end

    class Product < ActiveRecord::Base

    # ...

    end

    class Customer < ActiveRecord::Base

    # ...

    end

    Customer.establish_connection(

    :adapter => "mysql",

    :host => "dbserver.com",

    :database => "backend",

    :username => "chicho",

    :password => "piano")

     

    在我们前面所写的depot程序中,我们没有使用establish_connection方法,而是在config/database.yaml文件中指定了数据库连接的参数信息,对于大多数rails程序来说,这是首选的方式,不仅因为将配置信息和代码分离,而且在测试和部署时也能带来方便,上面的表格里列出的参数都可以应用在YAML文件中,这一点我们在前面的配置文件一节已经有介绍。

    最后,如果你通过一个标记访问establish_connection(),Rails会在database.yaml文件中查找名字对应的配置节,来获取链接的参数,这样就可以将所有的数据库连接配置从代码中分离出来。
  • 相关阅读:
    成功实施的APS项目故事分享---我们数据治理的心路历程
    成功实施的APS项目故事分享---如何管理与激励APS项目团队
    东莞裕同&易普优APS项目启动啦!
    包装印刷行业裕同集团&易普优APS项目顺利验收!
    易普优APS混流排序算法助力汽车整车厂的均衡生产
    动态调用WebService接口
    C#推送RocketMQ信息
    DEV带筛选行CheckBox选中问题
    验证上传文件真实格式
    PLSQL导出触发器代码
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/ruby_rails_43.html
Copyright © 2011-2022 走看看