ورود

View Full Version : استفاده از JProgress Bar برای اتصال، ذخیره و حذف از دیتابیس



vahid83
سه شنبه 04 خرداد 1389, 09:09 صبح
با سلام خدمت همه دوستان گرامی

اگه امکانش هست در مورد سؤال زیر راهنمایی ام کنید!:متفکر:

من از JDK 6 و netbeansIDE و MySQL 5.0 استفاده می کنم. دیتابیسم روی سیستم دیگه (که سیستم عاملش unix است) قرار داره و من از طریق IP سیستم به دیتابیس وصل میشم. ولی به علت زمان بر بودن اتصال به دیتابیس و برای اینکه کاربر فکر نکنه برنامه هنگ کرده خواستم از JProgress Bar استفاده کنم. ولی در نحوه استفاده اش دچار مشکل شدم. از دوستان اگه کسی روی این مطلب کار کرده، لطفاً منوراهنمایی کنه...

راستی یه سؤال دیگه: چه طوری میتونم سرعت اتصال رو بالا ببرم؟ با توجه به اینکه سرورم یونیکسه...

vahid83
سه شنبه 04 خرداد 1389, 09:49 صبح
دوستان من هنوز منتظر پاسخ شما هستم. لطفاً دریغ نکنید! :تشویق:

vahid83
سه شنبه 04 خرداد 1389, 09:58 صبح
یه جا خوندم که بهتره از thread استفاده کنم و یا جای دیگه گفته بود از timer...

ولی دقیقاً نمی دونم چه جوری؟!!!!

persianshadow
سه شنبه 04 خرداد 1389, 10:31 صبح
100 % باید از Thread استفاده کنید.حالا چطور خب یه کلاس باید طراحی کنید که تنها وظیفه‌اش اتصال به دیتابیس باشه و وقتی هم متصل شد به شما خبر بده تا برنامه رو ادامه بدید موضوع اینجاست که این کلاس باید
Thread رو توسعه بده و در اصل به عنوان یک Thread اجرا بشه.اتصال به دیتابیس زمان بر نیست حتی در سیستم‌های توزیع شده این موضوع به نحوه اتصال شما و همچنین سرعت پاسخ‌گویی پورت‌ها برمیگرده.
اما روش بهتره این هست قبل از اینکه برنامه شما اجرا بشه شما تمام این موارد رو انجام بدید یعنی اتصال به دیتابیس رو غیره رو تا کاربر وقت کمتری صرف این موارد کنه.
خب حالا زمانی که شما این کلاس رو برای اتصال به دیتابیس فراخوانی می‌کنید به این دلیل که نمی‌شه زمان
دقیق این عمل رو محاسبه کرد کافیه یک Dialog به کاربر نمایش بدید که مثلا یک چنین جمله ای روی اون
نقش بسته :




Please be Patience
Connect to Database...



خب وقتی هم کانکشن شما برقرار شد این Dialog میره و کاربر هم کاملآ متوجه موضوع میشه.Progress Bar
زمانی اثر داره که شما یک Task رو مدت زمانش رو به شکل تقریب می‌دونید و در حالت‌های دیگه صرفآ
یک عنصر نمایشی هست برای همین اکثر برنامه‌های Database توزیع شده از روش نمایش Dialog بهره
میبرن.

vahid83
سه شنبه 04 خرداد 1389, 12:00 عصر
ممنون از پاسخ کاملتون.
من در مورد مورد زیر با شما کاملاً موافقم

(اما روش بهتره این هست قبل از اینکه برنامه شما اجرا بشه شما تمام این موارد رو انجام بدید یعنی اتصال به دیتابیس رو غیره رو تا کاربر وقت کمتری صرف این موارد کنه.)

ولی اگه امنیت سیستم مطرح باشه آیا درسته که اتصال همیشه باز باشه؟
این طوری یه کم دست هکرها بسته میشه که از این نقطه ضعف استفاده نکنند. به همین علت برای هر عملی(نظیر مشاهده، افزودن و یا حذف و ...) اتصال رو باز و بسته میکنم. هر چند این طوری سیستم از نظر کاربر کند به نظر میاد. اگه شما پیشنهاد بهتری دارید مشتاق هستم بدونم.

حالا اگه از Dialod استفاده کنم میشه دیگه از Thread استفاده نکنم. چون تقریباً کدهام تموم شده و تغییر دادنش برام سخته با در نظر گرفتن این مطلب که با Thread ها کار نکردم!

بازم ازتون ممنونم...

persianshadow
سه شنبه 04 خرداد 1389, 14:15 عصر
خب هک شدن یک سیستم توزیع شده ربطی به باز بودن و یا بسته بودن کانکشن دیتابیس نداره [البته به عنوان یک عامل می‌تونه مهم باشه] مهم این هست اطلاعات جابه‌جا شده در قالب رمز شده باشه که در جاوا SOAP
بهترین گزینه هست تا داده‌های جا به جا شده امن به مقصد برسن.که خب از این موضوع می‌گذریم.
بله شما می‌تونید از Thread استفاده نکنید.Thread ها صرفآ تضمین می‌کنن کارهای مختلف همزمان با هم انجام بشن و تداخلی پیش نیاد.مثلآ در مورد برنامه شما اگه دیتابیس در حال وصل شده هست و فرضآ مشکلی پیش اومد این مشکل باعث فریز شدن کل برنامه نشه.که میشه از این موارد چشم پوشی کرد.
در مجموع ۲ راه برای ارسال امن داده‌ها وجود داره و همونطور که در ابتدا گفتم این ربطی به باز یا بسته بودن
کانکشن نداره.

۱ - استفاده از یک protocol امن مثل SSL که رابطه بین شما و سرور رو امن کنه.

۲ - بسته بندی داده‌ها در قالب امن و رمز کردن اون‌ها با استفاده از امکاناتی نظیر SOAP .