Grails -1-

Grails; Spring, Hibernate gibi güçlü Java altyapılarını kullanan ama dil olarak Groovy isimli Java tabanlı scripting dilini kullanan bir web uygulama platformudur.

Grails ile sağlam, esnek ve hızlı web uygulamaları geliştirmek çok kolaylaşmış ve yazılım geliştirme süreci çok kısalmıştır.

Java ile benzerliği dolayısı ile Groovy scripting dili, Java ile yazılmış Jython, JRuby  gibi diğer pekçok dillere nazaran daha kolay öğrenilmekte ve Java’nın zorluklarını taşımamaktadırGrails; Spring, Hibernate gibi güçlü Java altyapılarını kullanan ama dil olarak Groovy isimli Java tabanlı scripting dilini kullanan bir web uygulama platformudur.

Grails ile sağlam, esnek ve hızlı web uygulamaları geliştirmek çok kolaylaşmış ve yazılım geliştirme süreci çok kısalmıştır.

Java ile benzerliği dolayısı ile Groovy scripting dili, Java ile yazılmış Jython, JRuby  gibi diğer pekçok dillere nazaran daha kolay öğrenilmekte ve Java’nın zorluklarını taşımamaktadır.

Bu yazımızda teorik bilgiden çok uygulamaya yöneleceğiz.

Yazımızın yazılıdığı tarihte Grails’in son sürümü 1.0.3′dür ve aşağıdaki adresten indirilebilir:

http://www.grails.org/Download

Uygulamamızda Grails’i indirdiğimiz ve açtığımız dizin c:\java dizinidir.

Ortam değişkenlerine GRAILS_HOME ekliyoruz ve değerini C:\java\grails-1.0.3 olarak ayarlıyoruz.
Daha sonra path değişkenine de GRAILS_HOME\bin olarak ilave yapmak gerekli.
grails 1 Grails  1  programlama
grails 2 Grails  1  programlama

Bu duruma gelince artık uygulamanın çalışıp çalışmadığına bakabiliriz.
Komut satırından Grails dizinine geçelim.
cd c:\java\grails-1.0.3

Burada Grails’e ait temel komutları görmek istersek aşağıdaki şekilde yardım alabiliriz:

C:\java\grails-1.0.3>grails -help
Welcome to Grails 1.0.3 – http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: C:\java\grails-1.0.3

Base Directory: C:\java\grails-1.0.3
Note: No plugin scripts found
Running script C:\java\grails-1.0.3\scripts\Help.groovy
Environment set to development

                Usage (optionals marked with *):
                grails [environment]* [target] [arguments]*

                Examples:
                grails dev run-app
                grails create-app books

                Available Targets (type grails help ‘target-name’ for more info):
grails bootstrap
grails bug-report
grails clean
grails compile
grails console
grails create-app
grails create-controller
grails create-domain-class
grails create-integration-test
grails create-plugin
grails create-script
grails create-service
grails create-tag-lib
grails create-unit-test
grails doc
grails generate-all
grails generate-controller
grails generate-views
grails help
grails init
grails install-plugin
grails install-templates
grails list-plugins
grails package
grails package-plugin
grails plugin-info
grails release-plugin
grails run-app
grails run-app-https
grails run-war
grails set-proxy
grails set-version
grails shell
grails stats
grails test-app
grails upgrade
grails war

Grails’in sağladığı şablon uygulamalarını oluşturmak için bu komutlar yeterli gelebiliyor.

Biz de bu şekilde hızlı bir web uygulaması oluşturacağız.

Uygulamanın adı btdeneyim olsun.

C:\java\grails-1.0.3>grails create-app btdeneyim

Welcome to Grails 1.0.3 – http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: C:\java\grails-1.0.3

Base Directory: C:\java\grails-1.0.3
Note: No plugin scripts found
Running script C:\java\grails-1.0.3\scripts\CreateApp.groovy
Environment set to development
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src\java
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src\groovy
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\controllers
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\services
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\domain
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\taglib
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\utils
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\views
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\views\layouts
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\i18n
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test\unit
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test\integration
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\scripts
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\js
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\css
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\images
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\META-INF
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\lib
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf\spring
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf\hibernate
[propertyfile] Creating new property file: C:\java\grails-1.0.3\btdeneyim\application.properties
     [copy] Copying 2 files to C:\java\grails-1.0.3\btdeneyim
     [copy] Copied 1 empty directory to 1 empty directory under C:\java\grails-1.0.3\btdeneyim
     [copy] Copying 2 files to C:\java\grails-1.0.3\btdeneyim\web-app\WEB-INF
     [copy] Copying 5 files to C:\java\grails-1.0.3\btdeneyim\web-app\WEB-INF\tld
     [copy] Copying 87 files to C:\java\grails-1.0.3\btdeneyim\web-app
     [copy] Copying 18 files to C:\java\grails-1.0.3\btdeneyim\grails-app
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim
[propertyfile] Updating property file: C:\java\grails-1.0.3\btdeneyim\application.properties
Created Grails Application at C:\java\grails-1.0.3/btdeneyim

Bu komuttan anlaşıldğı kadarıyla uygulama yaratıldı. Ancak içerisinde henüz birşey yok.

Fakat biz yine de uygulamanın çalışıp çalışmadığına bakalım.

C:\java\grails-1.0.3>cd btdeneyim
C:\java\grails-1.0.3\btdeneyim>grails run-app

Welcome to Grails 1.0.3 – http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: C:\java\grails-1.0.3

Base Directory: C:\java\grails-1.0.3\btdeneyim
Note: No plugin scripts found
Running script C:\java\grails-1.0.3\scripts\RunApp.groovy
Environment set to development
    [mkdir] Created dir: C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes
  [groovyc] Compiling 6 source files to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes
    [mkdir] Created dir: C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources\grails-app\i18n
[native2ascii] Converting 11 files from C:\java\grails-1.0.3\btdeneyim\grails-app\i18n to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources\grails-app\i18n
     [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes
     [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources
     [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim
Running Grails application..
2008-07-13 00:11:52.714::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
2008-07-13 00:11:52.054::INFO:  jetty-6.1.4
2008-07-13 00:11:52.199::INFO:  No Transaction manager found – if your webapp requires one, please configure one.
2008-07-13 00:11:53.810:/btdeneyim:INFO:  Set web app root system property: ‘btdeneyim-development-0.1′ = [C:\java\grails-1.0.3\btdeneyim\web-app\]
2008-07-13 00:11:53.810:/btdeneyim:INFO:  Initializing log4j from [file:C:\Documents and Settings\mtac/.grails/1.0.3/projects/btdeneyim/resources/log4j.properties]
2008-07-13 00:11:53.830:/btdeneyim:INFO:  Initializing Spring root WebApplicationContext
[0] spring.GrailsWebApplicationContext Refreshing org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7: display name [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7]; startup date [Sun Jul 13 00:11:56 EEST 2008]; parent: org.springframework.web.context.support.XmlWebApplicationContext@b4b0a4
[0] spring.GrailsWebApplicationContext Bean factory for application context [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7]: org.springframework.beans.factory.support.DefaultListableBeanFactory@404eb2
2008-07-13 00:11:59.742:/btdeneyim:INFO:  Initializing Spring FrameworkServlet ‘grails’
2008-07-13 00:11:59.923::INFO:  Started SelectChannelConnector@0.0.0.0:8080
Server running. Browse to http://localhost:8080/btdeneyim

grails 3 Grails  1  programlama

Evet uygulamanın Grails tarafından sunulan arayüzü geldi.

(Devam sayfalarına tıklayınız)

#sayfa_sonu#

Bu uygulamaya kalıcı nesneler ekleyip veritabanı ile çalışmasını sağlamak lazım.

Önce btdeneyim adında bir veritabanı yaratıyoruz:

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u btdeneyim -p
Enter password: *********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.0.51b-community-nt MySQL Community Edition (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> create database btdeneyim default charset utf8;
Query OK, 1 row affected (0.01 sec)

Grails her uygulama için veritabanı bağlantıları konfigürasyonunu uygulama içinde grails-app\conf dizinşnde bulunan DataSource.groovy dosyasında tutar.

Biz de veritabanı ayarlamamızı burada yapacağız.

C:\java\grails-1.0.3\btdeneyim\grails-app\conf>notepad DataSource.groovy

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
}
hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class=’com.opensymphony.oscache.hibernate.OSCacheProvider’
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of ‘create’, ‘create-drop’,'update’
            url = "jdbc:mysql://localhost:3306/btdeneyim"
            username = "btdeneyim"
            password = "btdeneyim"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:mysql://localhost:3306/btdeneyim"
            username = "btdeneyim"
            password = "btdeneyim"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:mysql://localhost:3306/btdeneyim"
            username = "btdeneyim"
            password = "btdeneyim"
        }
    }
}

Varitabanı ayarından sonra ilk domain sınıfımızı yaratabiliriz:

C:\java\grails-1.0.3\btdeneyim>grails create-domain-class Makale

Welcome to Grails 1.0.3 – http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: C:\java\grails-1.0.3

Base Directory: C:\java\grails-1.0.3\btdeneyim
Note: No plugin scripts found
Running script C:\java\grails-1.0.3\scripts\CreateDomainClass.groovy
Environment set to development
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim\grails-app\domain
Created Domain Class for Makale
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim\test\integration
Created Tests for Makale

Makale isimli ilk domain sınıfımız yaratıldı. Bu aynı zamanda veritabanındaki Makale tablosuna tekabül edecek.
Domain sınıfımıza makalede bulunmasını istediğimiz alanları yazalım:

C:\java\grails-1.0.3\btdeneyim>notepad C:\java\grails-1.0.3\btdeneyim\grails-app\domain\Makale.groovy

class Makale {
 String baslik
 String ozet
 String metin
 Date olusutulmaTarihi
}

Bu sınıfa ait CRUD (Create Update Delete) işlemleri için bir de controller oluşturmak gerekecek.

C:\java\grails-1.0.3\btdeneyim>grails create-controller Makale

Welcome to Grails 1.0.3 – http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: C:\java\grails-1.0.3

Base Directory: C:\java\grails-1.0.3\btdeneyim
Note: No plugin scripts found
Running script C:\java\grails-1.0.3\scripts\CreateController.groovy
Environment set to development
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim\grails-app\controllers
Created Controller for Makale
    [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\views\makale
     [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim\test\integration
Created ControllerTests for Makale

Controller içinde otomatik olarak veritabanı sayfalarının yaratılması için scaffolding yapmamız lazım
Editör ile MakaleController’ı açıp içine aşağıdaki satırı yazıyoruz:

   def scaffold = Makale
 
C:\java\grails-1.0.3\btdeneyim>notepad C:\java\grails-1.0.3\btdeneyim\grails-app\controllers\MakaleController.groovy

class MakaleController {
    def scaffold = Makale
}

Şimdi uygulamayı yeniden başlatabiliriz:

C:\java\grails-1.0.3\btdeneyim>grails run-app


grails 4 Grails  1  programlama

Görüldüğü gibi MakaleController listelendi. ve artık makale ekleme silme ve güncelleme işlemlerini bu ekrandan yapabiliyoruz
grails 5 Grails  1  programlama
grails 6 Grails  1  programlama
grails 7 Grails  1  programlama
grails 8 Grails  1  programlama

Arama Terimleri:

cannot establish a connection to jdbc:mysql/localhost:3306, grails, grails ile web servis yapmak, grails turkiye, mblog sql veritabanı btdeneyim

ceviz.net

Yazar - 12 Temmuz 2008. Kategori PROGRAMLAMA. Bu yazıya yazılan yazıları RSS üzerinden takip edebilirsiniz RSS 2.0. Yorum yazabilir veya geri izlemede bulunabilirsiniz.

"Grails -1-" için yapılan toplam yorum - 3

  1. Daha fonksiyonel özellikleri içeren bir örnek program verseydiniz dil hakkında daha fazla fikir edinebilirdik. Yine de emeğiniz için teşekkürler.

  2. Gerçekten mükemmel bir grails kurulum örneği. ıleride tabiki gelişmiş örnekler olacaktır :)

  3. Bugün grails, dün ruby yarın başka bişey bu işin sonu nereye gidiyo arkadaşlar. Uzmanlar uzmanlaştıkları dalla ilgilenip geliştirmemi yapacak yoksa yeni teknoloji öğrenmeliyiz derken o dil senin bu dil benim ortadamı kalacaklar php nerden baksanız en az 10 yıllık bir dil ve şu an top seviyede ona rağmen hala geliştirmesi eksik bulunması devam ediyor.Yazımdan yeniliğe karşıyım gibi algılanabilir ama hergünde bi dil (dilcik) çıkarsa işimiz zor.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>