اتصال اندروید به SQL Server

اتصال اندروید به SQL Server

بصورت پیشفرض در اندروید برای ذخیره سازی داده از سه روش ذیل استفاده می شود:
۱- Shared Preferences
۲- File System(internal and external storage)
۳- SQL Lite
هریک از این روش ها در در جای خود می تواند بسیار کاربردی و مفیدتر از دیگر روش ها باشد. اما ذخیره سازی سازمان یافته در اندروید از طریق SQLite که یک نسخه بانک اطلاعاتی ساده اما بسیار قدرتمند است (در scale خود) ، صورت می پذیرد.

 

Connect-Andriod-SQLServer02

 

موضوع بحث ما اما روش های مرسوم ذخیره سازی اطلاعات در اندروید نیست، بلکه اتصال به بانک اطلاعاتی قدرتمند SQL Server می باشد. (اتصال اندروید به SQL Server)

 

 

به دو روش می توان اتصال اندروید به SQL Server را انجام داد :

۱- پیاده سازی Web Service  مبتنی بر تکنولوژی هایی که بصورت بومی به SQL Server دسترسی دارند مثل Web Api در دات نت.

۲- اتصال مستقیم با استفاده از Connection String.

 
پیاده سازی وب سرویس ها جهت بهره برداری از اطلاعات بانک اطلاعاتی SQL Server

وب سرویس ها معمولا به سه سبک مختلف پیاده سازی می شوند: RPC، Service-oriented و REST.

در این بین REST یا همان Representational state transfer ساده ترین رابط و بیشترین طرفدار را دارد. در این سبک با ایجاد افعال شناخته شده ای مثل DELETE، PUT، POST و GET بر روی Http ، کار با داده های ارائه شده توسط سرویس بسیار راحت و سریع خواهد بود.

 

Connect-Andriod-SQLServer01

 

 

استفاده از وب سرویس ها در اندروید هم با استفاده از متدهای بومی قابل پیاده سازی و هم بواسطه استفاده از کتابخانه های ارائه شد (بیشترین کتابخانه های ارائه شده برای اندروید بصورت Open Source هستند و قابلیت بسط دارند).

 
برای مثال یک نمونه بهره برداری از وب سرویس REST را با استفاه از کتابخانه Android Asynchronous Http Client بررسی می کنیم.
فرض کنید وب سرویس داریم که آدرس آن http://192.168.2.2:9999/useraccount/login/dologin است و از بانک SQL Server استفاده می کند و سرویس ارائه شده توسط آن نام کاربری (ایمیل) و کلمه عبور را دریافت کرده و سپس عملیات لاگین را انجام می دهد. ابتدا می بایست با استفاده از یک شی RequestParams پارامترهای خود را درج کنیم:

سپس تابع مربوط به ارسال درخواست را فراخوانی کنیم.

این تابع به شرح ذیل می باشد:

در این تابع می بینیم که یک وهله از AsyncHttpClient ایجاد شده سپس با فراخوانی متد  get این شی و ارائه پارامترهای لازم پاسخ از سرور دریافت می شود. که در صورت انجام عملیات بصورت موفقیت آمیز انجام شود در صورت صحت اطلاعات ارسالی پیام You are successfully logged in و در غیر اینصورت پیام خطا با نام error_msg نمایش داده می شود.
اما اگر به هر صورت اگر فرآیند این درخواست به درستی صورت نگیرد، در حالی که کد پاسخ از سرور ۴۰۴ باشد پیام Requested resource not found و اگر کد پاسخ ۵۰۰ باشد Something went wrong at server end و در غیر اینصورت

Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running] نمایش داده می شود.

اتصال مستقیم با استفاده از Connection String
می دانیم که برای برنامه نویسی بومی  اندروید از زبان برنامه نویسی جاوا استفاده می شود. در جاوا برای اتصال به بانک های اطلاعاتی از JDBC بهره گرفته می شود.  ابتدا می بایست یک کتابخانه JDBC برای SQL Serverداشته باشیم. اطلاع دارید که اندروید بصورت بومی فقط از SQLite پشتیبانی می کند.

پس ابتدا کتابخانه کد باز http://jtds.sourceforge.net را دریافت می کنیم.
حال که این کتابخانه را وارد برنامه خود کردید کافیست از کد زیر جهت اتصال به SQL Server کمک بگیرید:

در کد بالا بعد از برقراری اتصال ،کوئری select * from TableName اجرا می شود و سپس ستون چهارم هر رکورد در Logcat  نمایش داده می شود.
شاید مواردی زیادی نباشد که در آن نیاز به اتصال مستقیم از اندروید به SQL Server داشته باشیم. اما دانستن امکان این اتصال شاید قسمتی از طراحی چارت سیستمی مارا دچار دگرگونی کند.

 

دیدگاه خود را منتشر کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *