2010-08-05 9 views
8

क्या कोई नमूना है? मेरे पास एंड्रॉइड एप्लिकेशन है और मुझे अपनी मशीन पर mysql सर्वर से कनेक्ट करने की ज़रूरत है, सबसे अच्छा तरीका क्या है?एंड्रॉइड को डेटाबेस सर्वर से कैसे कनेक्ट करें

मैं JDBC उपयोग नहीं करना चाहिए, पर स्पष्टीकरण

एक इंटरनेट कनेक्शन के पार एक डेटाबेस ड्राइवर का उपयोग कभी नहीं कभी नहीं, किसी भी डेटाबेस के लिए, किसी भी मंच के लिए, किसी भी ग्राहक के लिए, कहीं भी। यह मोबाइल के लिए दोगुना हो जाता है। डाटाबेस ड्राइवर लैन ऑपरेशंस के लिए डिज़ाइन किए गए हैं और फ्लैकी/इंटरमीटेंट कनेक्शन या उच्च विलंबता के लिए डिज़ाइन नहीं किए गए हैं।

और के लिए जाना चाहिए:

DefaultHttpClient httpclient = new DefaultHttpClient(); 

लेकिन वहाँ कैसे एक कनेक्शन को खोलने या एक सरल एसक्यूएल बयान निष्पादित करने के लिए कोई उदाहरण है। कोई मेरी मदद कर सकता है?

उत्तर

9

आपको या तो वेब सेवाओं का उपयोग करना चाहिए या एक HTTP हैंडलर को कार्यान्वित करना चाहिए और एक यथार्थ तरीके से स्थानांतरित करना चाहिए।

0

आप एचटीपी क्लाइंट के साथ सीधे एक MySQL डेटाबेस से कनेक्ट नहीं कर पाएंगे, क्योंकि MySQL डेटाबेस उस प्रोटोकॉल पर काम नहीं करता है।

आपके द्वारा लिंक किए गए प्रश्न के उत्तर का दूसरा भाग वेब सेवाओं के साथ जाने और डाटाबेस सर्वर के साथ संवाद करने के लिए उपभोग करने की सिफारिश करता है। एचटीपी क्लाइंट के साथ आप वास्तव में क्या करने में सक्षम होंगे।

+0

तो HttpClient का उपयोग करके MySQL से कनेक्ट करना संभव नहीं है, इसलिए यदि मैं न तो jdbc और न ही HttpClient का उपयोग कर सकता हूं तो इसका क्या उपयोग करना चाहिए? – Alex

+2

आप एचटीपी क्लाइंट का उपयोग कर सकते हैं, आपको केवल एक वेब एप्लिकेशन लिखने की आवश्यकता है जो मोबाइल डिवाइस और डेटाबेस के बीच की जानकारी को संसाधित कर सके। एक यथार्थवादी वेब सेवा जो आप चाहें वह करेगी। http://www.ibm.com/developerworks/webservices/library/ws-restful/ – LizB

+0

लेकिन, ऐसा लगता है कि मुझे मध्य वेब के रूप में एक वेबसर्वर की आवश्यकता है, क्या यह सही है? – Alex

2

एक MySQL सर्वर से कनेक्ट करने के लिए, आपको एक MySQL क्लाइंट की आवश्यकता है। एंड्रॉइड किसी भी MySQL पुस्तकालयों के साथ नहीं आता है। आप एक सामान्य जावा माईएसQL लाइब्रेरी लेने में सक्षम हो सकते हैं और एंड्रॉइड के साथ काम करने के लिए इसे फज कर सकते हैं, लेकिन यह एक बड़ा उपक्रम और बर्बाद समय होगा।

जो लिंक आपने इंगित किया है वह आपको पहले ही बताता है कि आप जो करने की कोशिश कर रहे हैं वह पहले स्थान पर गलत है। इंटरनेट पर डेटाबेस से कनेक्ट न करें! आपको अपने सर्वर पर कुछ चाहिए जो HTTP अनुरोधों का जवाब देता है, डेटाबेस में डेटा देखता है, और उन्हें HTTP के माध्यम से वापस भेजता है। लिंक पहले से ही कुछ विकल्पों का उल्लेख किया है। आप स्वयं कुछ लिख सकते हैं, हालांकि अपने स्वयं के दृष्टिकोण को सुरक्षित और हैक-सबूत बनाने की कोशिश करने से मौजूदा समाधान का उपयोग करना सबसे आसान है।

0

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

+0

मुझे फोन से डेटाबेस में स्थानांतरित करने की आवश्यकता है – Alex

2

मैंने डाटाबेस सर्वर को एंड्रॉइड एप्लिकेशन से कनेक्ट करने का प्रयास किया, शुरुआत में मुझे कुछ समस्या का सामना करना पड़ा, जबकि मैं jtds jar फ़ाइल का उपयोग करने के बजाय jtds jar फ़ाइल का उपयोग कर रहा था, डेटाबेस ड्राइवर समर्थन के लिए mysql-Connector jar फ़ाइल का उपयोग करने के बजाय। mysql-connector jar फ़ाइल "mysql-connector-java-5.1.24-bin.jar"। परियोजनाओं libs फ़ोल्डर में इस जार फ़ाइल डाल दिया।

एक छोटा सा कोड का टुकड़ा:

`String url="jdbc:mysql://(IP-of databaseServer):3306/DBNAME";` 
`String driver="org.gjt.mm.mysql.Driver";` 
`String username="XYZ";//user must have read-write permission to Database 
`String password= "*********";`//user password 

`try{ 
    Class.forName(driver).newInstance();//loading driver 
    Connection con = DriverManager.getConnection(url,username,password); 
    /*once we get connection we can execute ths SQL command to Remote Database Server with the help mysql-connector driver over Internet*/ 

}`  
`catch(Exception e){ 
    e.printStackTrace(); 
}` 

मुझे आशा है कि यह काम कर सकता था।

चीयर्स राजेश पी यादव।

2

मैं Offline First का प्रशंसक हूं, जिसका अर्थ है कि आपका ऐप कनेक्शन के बिना प्रयोग योग्य होना चाहिए।

इसकी सुविधा के लिए, मैं एक SQLite स्थानीय डेटाबेस का उपयोग करने की सिफारिश करता हूं, और ऑनलाइन होने पर दूरस्थ डेटाबेस में समन्वयित करता हूं।

आप HTTP (एस) पर अपने स्थानीय और दूरस्थ डेटाबेस को सिंक करने के लिए SymmetricDS याजैसे टूल का उपयोग कर सकते हैं।