Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
-
Upload
rsim -
Category
Technology
-
view
1.563 -
download
3
Transcript of Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Web aplikāciju izstrāde ar Ruby on Rails un Oracle
+
Raimonds Simanovskis
TietoEnator Alise
Kas ir Ruby on Rails?
Ruby programmēšanas valoda
• Izveidoja Yukihiro Matsumoto (“Matz”) 1993-1995
• Ietekmējās no Perl, Python, Smalltalk, Lisp, CLU, ...
• “Programming Ruby”, 2000Dave Thomas, Andy Hunt
• Ruby on Rails, 2004David Heinemeier Hansson (DHH)
• 2006 2007
Ruby principi & priekšrocības
Pilnībā objektorientēta valoda
Vienkārša un saprotama sintakse
Elastīgas dinamiskās un metaprogrammēšanas iespējas
Mazāka apjoma kods
Projesionāla un atsaucīga kopiena
Ruby on RailsModerns “tīmekļa lietojumu ietvars”
Veidots Ruby programmēšanas valodā
Radies no 37signals Basecamp aplikācijas
Atvērtā koda programmatūra
Fokusējas uz izstrādātāju produktivitāti
Spējā (Agile) programmatūras izstrādes pieeja
PamatprincipiNeatkārto sevi
DRY - Don’t Repeat Yourself
Vienošanās nevis konfigurēšanaConvention over Configuration
Programmatūra ar viedokliOpinionated software
Komponentes
Active Record (Model)
Action Controller
Action View
Ruby => Oracle
Ruby application
ruby-oci8
require 'oci8'OCI8.new('scott', 'tiger').exec('select * from emp') do |r| puts r.join(',')end
Oracle Instant Client Oracle Database
SQL*Net
JRuby => Oracle
Ruby application
JRuby
require "java"sql = JavaSQL::DriverManager.getConnection(db, user, password)statement = sql.createStatementstatus = statement.execute "select * from parts;"rs = statement.getResultSet()
JDBC driver Oracle Database
SQL*Net
Ruby on Rails=> Oracle
gem install activerecord-oracle_enhanced-adapter
database.ymldevelopment: adapter: oracle_enhanced database: XE username: blogdemo password: blogdemo encoding: utf8
Demonstrācija
jeb kā uztaisīt blogaplikāciju 10 minūtēs...
ruby-plsql gemplsql.connection = OCI8.new("hr","hr","xe")
plsql.test_uppercase('xxx') # => "XXX"plsql.test_uppercase(:p_string => 'xxx') # => "XXX"plsql.test_copy("abc", nil, nil) # => { :p_to => "abc", # :p_to_double => "abcabc" }plsql.test_copy(:p_from => "abc", :p_to => nil, :p_to_double => nil) # => { :p_to => "abc", # :p_to_double => "abcabc" }plsql.hr.test_uppercase('xxx') # => "XXX"plsql.test_package.test_uppercase('xxx') # => 'XXX'plsql.hr.test_package.test_uppercase('xxx') # => 'XXX'
plsql.logoff
PL/SQL procedūras
esošās datubāzēs
class Employee < ActiveRecord::Base set_create_method do plsql.employees_pkg.create_employee( :p_first_name => first_name, :p_last_name => last_name, :p_employee_id => nil )[:p_employee_id] end set_update_method do plsql.employees_pkg.update_employee( :p_employee_id => id, :p_first_name => first_name, :p_last_name => last_name ) end set_delete_method do plsql.employees_pkg.delete_employee( :p_employee_id => id ) endend
Ruby on Rails + Oracle references
Paldies!http://blog.rayapps.comhttp://github.com/rsim