2011-02-23 6 views
7

तो मैं डाटाबेस से संबंधित लिफ्ट कैसे काम करता है, इस बारे में अच्छी व्याख्या के लिए इंटरनेट के चारों ओर देख रहा हूं। मुझे अभी तक बहुत उपयोगी नहीं मिला है। जो मैं खोज रहा हूं वह एक सरल स्पष्टीकरण या कोड उदाहरण है जो दिखा सकता है कि लिफ्ट कैसे लेनदेन करने के लिए अपने डेटाबेस से कनेक्ट होता है और नई टेबल, मॉडल या अपडेट और मौजूदा टेबल को संपादित करने के लिए इसका उपयोग कैसे किया जाता है।लिफ्ट के साथ प्रारंभ करना, डायनामिक साइट्स बनाने के लिए डेटाबेस का उपयोग करना

उदाहरण के लिए: django के साथ मैं काफी आसानी से पता लगाता हूं कि यह मॉडल वर्गों से डेटाबेस टेबल कैसे उत्पन्न करता है और फ्रेमवर्क से विरासत में प्राप्त विधियों के माध्यम से उन पर निष्पादित अद्यतन कैसे करता है।

मैं, एक वेबसाइट पर उनके बारे में जानकारी, पदों उपयोगकर्ताओं के लिए होता है उस पल में एक सरल अनुप्रयोग बनाने के लिए कोशिश कर रहा हूँ आदि

मैं वर्तमान में उपलब्ध लिफ्ट पुस्तकों के माध्यम से पढ़ रहा हूँ और बहुत अधिक मदद की सराहना करेंगे लिफ्ट का उपयोग कैसे करें सीखने में।

उत्तर

3

लिफ्ट Boot.scala में इसका डेटा स्रोत कॉन्फ़िगर करता है।

if (!DB.jndiJdbcConnAvailable_?) { 
    val vendor = 
    new StandardDBVendor(Props.get("db.driver") openOr "org.h2.Driver", 
     Props.get("db.url") openOr 
     "jdbc:h2:lift_proto.db;AUTO_SERVER=TRUE", 
     Props.get("db.user"), Props.get("db.password")) 


    LiftRules.unloadHooks.append(vendor.closeAllConnections_! _) 

    DB.defineConnectionManager(DefaultConnectionIdentifier, vendor) 
} 

यह आप Schemifier प्रयोग करने के लिए मेज स्कीमा उत्पन्न कर सकते हैं:

Schemifier.schemify(true, Schemifier.infoF _, User,Post,Tag,PostTags) 

सामान्य लिफ्ट परियोजना के लिए, तुम सिर्फ एक ORM उपकरण के रूप में लिफ्ट मैपर उपयोग कर सकते हैं, यह पूरा नहीं हुआ है, लेकिन अधिकांश मामलों के लिए काम करता है ।

आप लिफ्ट विकी और Simply Lift (लेखक द्वारा लिखित) या Explore Lift का उल्लेख कर सकते हैं। मेरे परिप्रेक्ष्य से, अब तक उपलब्ध दस्तावेज निराशाजनक हैं। यह कहा जाता है कि Lift in Action बहुत अच्छी तरह से लिखा गया है, लेकिन इस गर्मी तक नहीं आएगा, आप इसे एमएएपी से पढ़ सकते हैं।

1

लिफ्ट में डिफ़ॉल्ट ओआरएम मैपर है जो आपको अन्य चीजों के बीच आपकी डीबी इकाइयों के लिए सीआरयूडी कार्यक्षमता का त्वरित मार्ग प्रदान करता है। हालांकि यदि आप अधिक पारंपरिक जेपीए दृढ़ता दृष्टिकोण चाहते हैं (या बल्कि एसपीए क्योंकि उस मामले में संस्थाएं स्कैला में लिखी जाएंगी), तो मुझे आमतौर पर जेपीए जैसे नमूना आवेदन बहुत उपयोगी लगता है जो लिफ्ट वितरण का हिस्सा है। इसे आज़माने के लिए, यह मानते हुए Maven स्थापित किया गया है, बस के प्रकार:

mvn archetype:generate -DarchetypeRepository=http://scala-tools.org/repo-snapshots -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-jpa-basic_2.8.1 -DarchetypeVersion=2.3-SNAPSHOT -DgroupId=org.mycompany.myproject -DartifactId=MyProject -Dversion=1.0 

यह एक MyProject लिफ्ट परियोजना का निर्माण करेगा, 2 संस्थाओं (लेखक और पुस्तक) के रूप में एक एक-से-कई संबंध होने के साथ एक सरल पुस्तकालय आवेदन युक्त सीआरयूडी स्निपेट्स के साथ-साथ यह दिखाता है कि आप जेडीबीसी अनुपालन डेटाबेस में ऐसी इकाइयां कैसे बना और संपादित कर सकते हैं।

2

एक्सप्लोरिंग लिफ्ट पुस्तक में, पॉकेट चेंज उदाहरण में कोड शामिल है जो मेटाप्रोटो यूज़र और अन्य सुविधाओं का उपयोग कर उपयोगकर्ता को परिभाषित करने के तरीके को दिखाता है। मैं लिफ्ट, मॉडल और अंतर्निहित सीआरयूडी और उपयोगकर्ता प्रोटोटाइप ऑब्जेक्ट्स की बेहतर समझ के लिए वहां से शुरू करूंगा।

http://exploring.liftweb.net/master/index-2.html#toc-Chapter-2

ध्यान रखें कि 'नए' डीबी एकीकरण के लिए दृष्टिकोण रिकॉर्ड के माध्यम से किया जाएगा। यह प्रगति पर बहुत अधिक काम है, इसलिए मैं इसे सीखना शुरू नहीं करूँगा।

आप कुछ विचार पाने के लिए लिफ्ट इन एक्शन के स्रोत को भी देख सकते हैं। पहले जोड़े अध्याय https://github.com/timperrett/lift-travel

और संपूर्ण पुस्तक के स्रोत कोड में निर्मित यात्रा ऐप का एक लिंक यहां दिया गया है। अध्याय 10 मैपर अध्याय है। https://github.com/timperrett/lift-in-action