PDA

View Full Version : jdbc_odbc?



quack
یک شنبه 22 مرداد 1385, 10:14 صبح
وقتی دستور
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); رااجرا میکنم error

JFrame.java [57:1] unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");/

را میگیرم؟! قبل از لود کردن درایور کار خاصی باید انجام شود؟

pooyanm
یک شنبه 22 مرداد 1385, 10:36 صبح
این مثال رو اجرا کن روی سیستم من درست جواب می‌ده:
http://www.barnamenevis.org/forum/showthread.php?t=50018

quack
یک شنبه 22 مرداد 1385, 18:34 عصر
همینطوری کار میکنه ولی بدونه try-catch روی class.forName باز error میده ؟؟!!!!!!

pooyanm
یک شنبه 22 مرداد 1385, 22:11 عصر
وجود بلوک try catch الزامیه. به این معنی که اگر کلاس مورد نظر در دسترس نبود کنترل از برنامه خارج نشه.

quack
یک شنبه 22 مرداد 1385, 22:34 عصر
وقتی برنامه شمارا اجرا می کنم درست کار میکنه , پس کلاس را پیدا کرده. ولی وقتی try-catch را برمیدارم error میده؟؟!!!

pooyanm
دوشنبه 23 مرداد 1385, 06:21 صبح
نام کلاس در این مثال یک روش عمومی برای تعیین سرور بانک اطلاعاتی است که به شما امکان می‌ده که این برنامه را در هر سیستم عاملی با هر نوع بانکی اجرا کنید معمولا نام بانک از طرف کاربر قبل از اجرا قابل تغییره یعنی شما می‌تونی یک فایل تنظیمات داشته باشی که کاربر لینوکس؛ ویندوز و ... نام بانک خود را در اون تنظیم کنند و برنامه شما یک String از فایل تنظیمات را خوانده و به متد forName وارد کنه و مثلا من هنگام استفاده از کلاس شما می‌تونم با ویرایش فایل تنظیمات اون را برای MySQL در لینوکس تنظیم کنم در حالی که به Source این کلاس دسترسی نخواهم داشت.
با بلوک try-catch پس از بروز خطا می‌تونی دستورات دیگری را در بدنه catch ادامه بدی یا یک پیام خطا مناسب به کاربر بدی.
ولی اگر اصرار داری این استثنا را مدیریت نکنی می‌تونی از روش زیر به جای اون خط برنامه کلاس را بارگذاری کنی که اینکار غیراستاندارده:


new sun.jdbc.odbc.JdbcOdbcDriver();