مقالات آموزشی جاواهاستینگ

۹ مطلب با کلمه‌ی کلیدی «آموزش جاوا با جاواهاستینگ» ثبت شده است

سه شنبه, ۲۸ بهمن ۱۳۹۹، ۱۱:۰۲ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش دوازدهم

نکات آموزشی کاربردی برای هر جاواکار بخش دوازدهم

در این بخش و بخش بعدی, نمونه پیاده سازی یک پروژه Spring Boot را به همراه جزئیات و نکات لازم آن ارائه می دهیم.

قبل از شروع هرکاری ابتدا باید فایل pom.xml را باز کرده و depenency ها یا افزونه های مربوطه را به آن اضافه کنیم.


همچنین چون با دیتابیس کار خواهیم کرد بایستی ابتدا تنظیمات آنرا به فایلی تحت عنوان application.properties که در پوشه resources قرار دارد اضافه شود.

سپس کار طراحی پروژه با کلاس مدل Jpa برای موجودیت Entity User آغاز می شود. در واقع این کلاس به همراه فیلدهایش همان جدول مدنظر ما در پایگاه داده می باشد.

ادامه مطلب...
۲۸ بهمن ۹۹ ، ۱۱:۰۲ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
يكشنبه, ۲۶ بهمن ۱۳۹۹، ۱۱:۴۲ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش دهم

نکات آموزشی کاربردی برای هر جاواکار بخش دهم

در ادامه بحث (Hibernate-Jpa) بخش نهم و ادامه نمونه پروژه مربوطه داریم :

Annotation های مخصوص بکار رفته در پروژه بخش قبل عبارتند از :

Entity@: قبل از تعریف این سه کلاس بکار رفته که نشان دهنده موجودیت بودن هر کدام است و حتما باید ذکر شود.

Table@: در صورتی کاربرد دارد که بخواهیم بجای ایجاد جدول با نام پیشفرض در دیتابیس, نامی دلخواه قرار دهیم.

Id@: جهت تنظیم فیلد آیدی و کلید اصلی کردن آن بکار می رود.

GeneratedValue@: برای تعیین نوع فیلد کلید اصلی می باشد.همچنین شامل خواص مختلفی است که در اینجا Auto تنظیم شده به این معنا که با توجه به نوع دیتابیس بصورت اتوماتیک مقادیر تولید شده در این فیلد را تنظیم می کند.در صورت عدم تعیین استراتژی این Annotation , بطور پیشفرض با Auto مقدار دهی می شود.

Column@: در صورتی که بخواهیم هر فیلد در جدول با نام دلخواه ایجاد شود این Annotation را بالای آن قرار داده و نام مدنظر را به آن می دهیم.

ElementCollection@:گاهی اوقات برای ایجاد ارتباط با Entity دیگر, آبجکتی از آن را بصورت لیست ایجاد می کنیم که ممکن است در خروجی خطا دهد و لیست را قبول نکند که با این Annotation احتمالا مشکل رفع می شود اما اکثرا ممکن است خطا مربوط به عدم درست بودن منطق رابطه ما باشد که در این صورت فقط بایدآنرا تغییر دهیم.

ادامه مطلب...
۲۶ بهمن ۹۹ ، ۱۱:۴۲ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
شنبه, ۱۸ بهمن ۱۳۹۹، ۱۰:۱۷ ق.ظ واحد فنی
نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش چهارم

نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش چهارم

شمارش (Enum  : (Enum ها نوعی از داده هستند برای وقتی که ما چند مقدار محدود ثابت داریم مانند چند کتاب از یک کتابخانه.در صورت خالی تعریف کردن یک شمارش می توان با ایجاد نمونه ای از آن و بدون new کردن آن را مستقیما مقداردهی کرد. شمارش ها مانند کلاس ها می توانند دارای انواع متد مانند constructor و همچنین متغیرها باشد. هر enum بطور پیشفرض از نوع final,static و public می باشد. برای تعریف آن هم اول enum ذکر شده سپس نام آن قید شود. تفاوت آن با کلاس در این می باشد که نمی توان از آن مستقیما آبجکت new کرد. با استفاده از متد ()values وحلقه foreach می توان مقادیر هر لیست شمارشی را پیمایش نمود که مقادیر را بصورت لیست آرایه ای بر می گرداند. با متد ()valuesof نیز می توان مستقیما به یکی از عناصر لیست شمارش که نام آنرا بصورت String بعنوان پارامتر متد می دهیم, دسترسی پیدا کرد.

نمونه یک enum :

enum Restaurants{

mcDonald,KFC,Pizzahot,Sandwich}

public static void main(String arg[]){

Restaurants r;

System.out.println(“All Restaurants are :”);

Restaurants rArray= Restaurants.values();

for(Restaurants a:rArray){

System.out.println(a);}

r= Restaurants.valueOf(“KFC”);

System.out.println(“It s+r);}

 

اعضای static کلاس

 اگر بخواهیم متغیر یا متدی را برای کل کلاس مشترک کنیم تا امکان استفاده از آن در خارج از کلاس براحتی وجود داشته باشد باید کلمه کلیدی static را بعد از ذکر سطح دسترسی آن بیاوریم. براحتی در خارج از کلاس مربوطه می توان با دستور زیر به مولفه ای درون آن کلاس دست پیدا کنیم :                       نام متغیر یا متد . نام کلاس مربوطه          

۱۸ بهمن ۹۹ ، ۱۰:۱۷ ۱ نظر موافقین ۰ مخالفین ۰
واحد فنی
چهارشنبه, ۱۵ بهمن ۱۳۹۹، ۱۰:۰۴ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش پنجم

نکات آموزشی کاربردی برای هر جاواکار بخش پنجم

وظایف JDBC به ترتیب شامل موارد مقابل می شود : ارتباط با پورت(Port) – کانکت شدن به دیتابیس- ایجاد دستورات(Query) و بستن پورت (Port) بعد از پایان کار با دیتابیس می باشد. برای کار با JDBC ابتدا باید فایل با پسوند jar آنرا دانلود سپس در پوشه اصلی مربوط به هر پروژه اضافه کنیم و در مرحله بعد, از نصب mysql در سیستم عامل اطمینان حاصل شود که بعنوان مثال در سیستم عامل لینوکس و بخش Terminal آن دستور زیر مربوط به اتصال به دیتابیس را وارد کرده تا وجود mysql بررسی گردد.

Mysql -u root -p

چنانچه پیام عدم نصب mysql در ترمینال مشاهده شد, با وارد کردن دستورات زیر, سیستم عامل اقدام به دانلود و نصب خودکار آن می کند.

Sudo su

yum install mariadb mysql-server

JDBC-URL : برای پیکربندی(Config) JDBC جهت اتصال به دیتابیس بوده که مشخصاتی از قبیل آدرس دیتابیس و دیگر پارامترهای مهم مانند نام کاربری, رمز عبور, استاندارد زبان (مثل UTF8),اجازه یا عدم اجازه استفاده از برخیQuery ها یا Function ها و غیره را شامل می شود.

JDBC:mysql=//localhost:3306/book ? Username : ‘ali9808’ Password : ‘ade248t9’

در URL بالا منظور از localhost:3306 , استفاده از کامپیوتر فعلی برای ارتباط با دیتابیس است که در این صورت JDBC و mysql در این سیستم نصب می باشند. ولی اگر ماشین مجازی برای ارتباط با پایگاه داده بکار رود باید آدرس ip آنرا با وارد کردن دستور ip a در ترمینال لینوکس یافته سپس جایگزین localhost:3306 در آدرس URL شود. در مواقعی که از فضای اینترنتی(Host) جهت برقراری ارتباط با دیتابیس استفاده شود باید آدرس دامنه(Domain) در بخش آدرس URL قرار گیرد.

ادامه مطلب...
۱۵ بهمن ۹۹ ، ۱۰:۰۴ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۳۴ ق.ظ واحد فنی
نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش سوم

نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش سوم

Exception ها

Exception ها یا استثناهایی برای مدیریت خطاها در یک برنامه هستند. انواع گوناگونی از استثناها وجود دارد که رایج ترین آنها عبارتند از :

 

DivideByZeroWithExceptionHandling که هنگام تقسیم بر صفر رخ می دهد و زیر مجموعه استثنای ArithmeticException می باشد که موقع وقوع خطای ریاضی اتفاق می افتد.

ArrayIndexOutOfBoundsException در صورتی که اندیس خارج از خانه های آرایه باشد رخ می دهد.

ArrayStoreException زمانی که نوع داده ای که در خانه آرایه ریخته می شود با خود نوع آرایه متفاوت باشد این exception رخ خواهد داد.

IllegalArgumentException وقتی که از آرگومان های ورودی نامعتبر برای فراخوانی یک متد استفاده شود این exception رخ می دهد.

NullPointerException این استثنا زمانی رخ می دهد که از اشیائی استفاده کنیم که مقداردهی نشده و null هستند.

FileNotFoundException وقتی فایل مورد نظر در آدرس وجود نداشته باشد این استثنا رخ می دهد.

InputMismatchException استثنای ورود مقادیر اشتباه توسط کاربر است.

InstantiationException زمانی که بخواهیم از یک کلاس abstract و یا اینترفیس یک شئ بسازیم این استثنا رخ خواهد داد.

UnsupportedOperationException این exception زمانی رخ می دهد که از عملیاتی استفاده شود که زبان جاوا از آن پشتیبانی نکند.

ادامه مطلب...
۱۴ بهمن ۹۹ ، ۰۹:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۲۴ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش چهارم

نکات آموزشی کاربردی برای هر جاواکار بخش چهارم

کلاس های انتزاعی Abstract Class

 

از انواع مهم کلاس ها می باشد که می توان از آنها بعنوان کلاس پایه برای سایر کلاس ها استفاده نمود. امکان تعریف متدهای انتزاعی یا غیر انتزاعی در این نوع کلاس وجود دارد. نمی توان مستقیما از این کلاس ها آجکتی new کرد بلکه ابتدا باید از کلاسی که از آن ارث بری می کند برای ایجاد نمونه استفاده شود.  ;A a=new B  در اینجا برای نمونه کلاس  ‌‌A انتزاعی و کلاس B همان کلاسی است که از آن ارث بری نموده است.  در صورت ارث بری کلاسی غیر انتزاعی از کلاسی انتزاعی, آن کلاس حتما باید متد های درون Abstract Class را پیاده سازی مجدد یا Override کند که در غیر این صورت با خطا مواجه می شویم. ولی در صورت ارث بری کلاسی انتزاعی از کلاس انتزاعی دیگر, پیاده سازی همه متد های آن اجیاری نمی باشد. همچنین امکان ایجاد آبجکت از آن بصورت مستقیم وجود نداشته و برای حل این مشکل باید از مفهومی تحت عنوان Polymorphism (چندریختی) استفاده کرد.

public abstract class Animal{}  نمونه تعریف یک کلاس انتزاعی

چند ریختی Polymorphism

 

یکی از مفاهیم مهم زبان برنامه نویسی جاوا, چند ریختی است که از قابلیت اشیاء است. طی این فرآیند شی از کلاس فرزند تعریف شده اما با کلاس پدر new می شود. (یک شی از کلاس فرزند که از جنس کلاس پدر ایجاد شده) که با این کار کلاس فرزند به مولفه های کلاس پدر دسترسی پیدا کرده و و می تواند عملیات مدنظر را انجام دهد. مثالی که در بحث کلاس های انتزاعی مطرح شد نمونه ای از polymorphism می باشد.

۱۴ بهمن ۹۹ ، ۰۹:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۲۰ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش سوم

نکات آموزشی کاربردی برای هر جاواکار بخش سوم

شی Object
 
برای دسترسی و مقداردهی خصوصیات و بطور کلی هر مولفه ای که در کلاس تعریف شده , باید یک شی یا اشیایی از آن کلاس new کنیم. با اجرای برنامه , object متد سازنده کلاس را فراخوانی کرده سپس عملیات مقداردهی به مولفه های کلاس انجام می شود. در صورت عدم ایجاد سازنده , کامپایلر یک سازنده پیشفرض می سازد.

 

Interface (رابط)
 
مفهومی شبیه به کلاس ها می باشند که می توانند مولفه های مختلف از جمله متد, متغیر و ... داشته باشند با این تفاوت که بدون بدنه تعریف می شوند.  باید توجه داشت که متغیر های تعریف شده در رابط حتما باید از نوع Final (ثابت) تعریف شوند. چنانچه کلاسی بخواهد از مولفه های آن استفاده کند باید از کلمه کلیدی implements بجای extends استفاده  و سپس نام رابط قید شود. در مرحله بعد باید متدهای رابط درون کلاس, بازنویسی (override) شوند. همچنین امکان implements یک کلاس از چند interface و interface ها از یکدیگر ممکن می باشد. رابط متد سازنده ندارد به همین دلیل نمی توان از آن آبجکتی new کرد. در مواقعی که کلاسی از رابط ارث بری می کند,  باید ابتدا از آن کلاس آبجکتی ایجاد سپس بعد از new, با قید نام رابط می توان  کرد به مولفه های آن دسترسی پیدا کرد. باید به این نکته توجه داشت که سطح دسترسی همه مولفه ها در interface باید public باشد تا دسترسی در هر جای برنامه به آن مقدور باشد.

۱۴ بهمن ۹۹ ، ۰۹:۲۰ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
يكشنبه, ۵ بهمن ۱۳۹۹، ۱۱:۱۱ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش دوم

نکات آموزشی کاربردی برای هر جاواکار بخش دوم

کپسوله سازی Encapsolation

 

بهتر است برای ارتقای امنیت و مخفی ماندن مقداردهی به متغیرهای کلاس ابتدا آنها را از نوع  private تعریف شود که با ایجاد متدهای  set مولفه ها مقداردهی می شوند. در مرحله بعد با ایجاد متد get مقادیر اختصاص داده شده برگردانده می شود. البته در جاوا کتابخانه ای بنام lombook وحود دارد که بصورت خودکار برای هر متغیر تعریف شده در کلاس این دو متد را ایجاد می کند. مشکلی در استفاده از این کتابخانه وجود دارد و آن ساده بودن متدهای پیاده سازی شده توسط lombook می باشد. برای نمونه اگر بخواهیم در متد های set یا  get شرطی قرار دهیم یا عملیات دیگری انجام دهیم, ناچارا باید آنها را دستی تعریف نماییم.

}public class users

{;private int id

}()public int getId

{;return id

}(public void setId(int id

{;this.id=id

وراثت 

 

در برنامه نویسی شی گرا با قرار دادن کلمه کلیدی extends  بعد از نام کلاس سپس قید نام کلاس پدر یا والد مقابل آن انجام می گیرد. وقتی کلاسی از کلاس دیگر ارث بری می کند در واقع می تواند به مولفه های تعریف شده درون آن دسترسی پیدا کند البته بشرطی که سطح دسترسی مولفه ها خصوصی یا  private نباشد. معمولا در ارث بری کلاس ها از هم قانونی بنام is a وجود دارد. بعنوان مثال کلاس سگ از کلاس حیوان ارث بری می کند پس سگ یک حیوان است. همچنین در حالت عادی امکان ارث بری چند گانه کلاس ها از یکدیگر در زبان برنامه نوبسی جاوا ممکن نیست اما در interface این مورد امکان دارد.برای ارث بری یک کلاس از رابط  (interface) امکان استفاده از کلمه کلیدی extends وجود ندارد و بجای آن باید از کلمه کلیدی implements استفاده نمود.

{}public class Dog extend Animal

{} public Interface Dog implements Animal

 

۰۵ بهمن ۹۹ ، ۱۱:۱۱ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
يكشنبه, ۵ بهمن ۱۳۹۹، ۱۰:۱۵ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش اول

نکات آموزشی کاربردی برای هر جاواکار بخش اول

کلاس  Class

کلاس ها در جاوا به این صورت تعریف می شوند :

بعنوان مثال {}Public class Time


اولین مولفه سطح دسترسی به کلاس است که در اینجا عمومی Public است و در هر جای دیگر برنامه قابل استفاده می باشد. مولفه بعدی کلمه کلیدی class است که باید حتما قید شود و مولفه سوم نام کلاس می باشد. در زبان جاوا چند سطح دسترسی وجود دارد که عبارتند از کلاس با دسترسی عمومی که در نمونه فوق ذکر شد, مولفه های درون آن کلاس در همه جای برنامه قابل استفاده است. سطح دسترسی دیگر پکیج یا No Modifier می باشد که موقع نوشتن این نوع کلاس نیاز به ذکر سطح دسترسی نمی باشد. کلاس با این نوع دسترسی فقط به کلاس ها و مولفه های دیگری که درون آن پکیج قرار دارند اجازه دسترسی می دهد در غیر اینصورت امکان دسترسی وجود نخواهد داشت. نوع دیگر دسترسی خصوصی  Private می باشد که امکان دسترسی را فقط درون خود کلاس می دهد و در خارج از کلاس نمی توان از آنها استفاده نمود. آخرین نوع دسترسی محافظت شده Protected است که از درون کلاس و پکیج های یکسان دسترسی دارد اما از بیرون کلاس و پکیج خودش این مورد ممکن نیست.
 

متد سازنده Constructor
 
هر کلاس می بایست حداقل یک متد سازنده داشته باشد. وظیفه اصلی سازنده , مقداردهی اولیه به مولفه های تعریف شده در کلاس مربوطه می باشد که می توانند با پارامتر یا بدون آن تعریف شوند. در نوع با پارامتر سازنده, به محض اجرای برنامه عملیات مقداردهی اولیه به مولفه های کلاس را با کلمه کلیدی this و قید نام پارامتر مقابل آن , مقادیر دریافتی از object را به پارامترها پاس می دهد. در صورت ارث بری کلاسی از کلاس دیگر, می توان با متد سازنده SubClass, مقادیری را به متد سازنده ParentClass ارسال کرد که در اینجا باید کلمه کلیدی super به همراه نام پارامترها قید شوند.

۰۵ بهمن ۹۹ ، ۱۰:۱۵ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی