2008-09-30 17 views
28

एम्बेड करना इस समय हम एम्बेडेड डेटाबेस के रूप में HSQLDB का उपयोग करते हैं, लेकिन डेटा वॉल्यूम बढ़ने के साथ ही हम कम मेमोरी पदचिह्न वाले डेटाबेस की खोज करते हैं।जावा एच 2 डेटाबेस प्रोग्रामेटिक रूप से

Derby/JavaDB इस समय एक विकल्प नहीं है क्योंकि यह सिस्टम गुणों में वैश्विक रूप से गुणों को संग्रहीत करता है। तो हमने h2 के बारे में सोचा।

जबकि हमने एचएसक्यूएलडीबी का उपयोग किया, हमने सर्वर-ऑब्जेक्ट बनाया, पैरामीटर सेट किया और इसे शुरू किया। यह here वर्णित है (और कक्षा org.hsqldb.test.TestBase कक्षा में उदाहरण के रूप में दिया गया है)।

सवाल यह है: क्या यह एच 2 डेटाबेस के साथ समान हो सकता है? क्या आपके पास इसके लिए कोई कोड नमूने हैं? एच 2 पेज स्कैनिंग, मुझे एक उदाहरण नहीं मिला।

उत्तर

24

डाउनलोड से, मैं देख रहा हूँ फ़ाइल tutorial.html इस

import org.h2.tools.Server; 
... 
// start the TCP Server 
Server server = Server.createTcpServer(args).start(); 
... 
// stop the TCP Server 
server.stop(); 
63

हाँ, आप एम्बेडेड मोड में एच 2 चला सकते है। तुम बस JDBC ड्राइवर का उपयोग करें और यह (उनके उदाहरण) की तरह एक एम्बेडेड यूआरएल से कनेक्ट:

इस डेटाबेस या एम्बेडेड मोड में इस्तेमाल किया जा सकता, सर्वर मोड में। आप के लिए देख रहे हैं

import org.h2.jdbcx.JdbcDataSource; 
// ... 
JdbcDataSource ds = new JdbcDataSource(); 
ds.setURL("jdbc:h2:˜/test"); 
ds.setUser("sa"); 
ds.setPassword("sa"); 
Connection conn = ds.getConnection(); 

: एक एम्बेडेड एच 2 डेटाबेस के लिए JDBC के साथ जोड़ने की

* Add h2.jar to the classpath 
* Use the JDBC driver class: org.h2.Driver 
* The database URL jdbc:h2:~/test opens the database 'test' in your user home directory 

उदाहरण (http://www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html से रूपांतरित): एम्बेडेड मोड में इसका इस्तेमाल करने के लिए आपको करने की जरूरत है पूरी तरह से मेमोरी/एम्बेडेड मोड में H2 का उपयोग करें, आप भी ऐसा कर सकते हैं। अधिक जानकारी के लिए इस लिंक देखें: ": एच 2: मेम: DB1 JDBC"

तुम बस की तरह सामान्य JDBC कोड में एक विशेष URL का उपयोग करने की जरूरत है।

+0

मुझे "गुण" को सही कहने की आवश्यकता है, कहने के लिए: मुझे कम से कम - निर्देशिका को डेटाबेस में सेट करना होगा। यही वजह है कि हम डर्बी/जावाडीबी का उपयोग नहीं कर सकते क्योंकि यह सिस्टम गुणों का उपयोग करता है सवाल में – Georgi

+0

पोर्ट 8082 पर चल रहा है, जो एच 2 के लिए डिफ़ॉल्ट है, या तो कोई विकल्प नहीं है। – Georgi

+0

मुझे समझ में नहीं आता कि आप क्या कह रहे हैं। यहां कुछ भी सिस्टम गुणों का उपयोग नहीं करता है। आप फ़ाइलों को स्टोर करने के लिए एक जगह निर्दिष्ट करते हैं। यह तय करने के लिए कि यह कहां करना है, यह आपके ऐप पर निर्भर है। यदि आप चाहें तो आप java.io.tmpdir का उपयोग कर सकते हैं। यह एम्बेडेड मोड में बंदरगाह पर नहीं चलता है। –

5

किसी कारण से आप सर्वर मोड में एक एम्बेडेड एच 2 डेटाबेस की जरूरत है आप इसे या तो स्वयं http://www.h2database.com/javadoc/org/h2/tools/Server.html पर एपीआई का उपयोग कर सकते हैं - या जोड़कर; AUTO_SERVER = डेटाबेस यूआरएल के लिए सही।

संबंधित मुद्दे