استفاده از NamedQuery به دو صورت XML و annotation

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ و هایبرنیت است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. هایبرنیت یک کتابخانه object-relational mapping برای زبان جاوا است که چارچوبی را برای نگاشت یک شی به یک پایگاه داده رابطه‌ای فراهم می‌آورد. نوشتن NamedQuery به صورت XMLی بدین صورت است که در فایل XML متناظر با مدل (Model) خود، بعد از تعریف propertyها باید کوئری مورد نظر خود را به صورت صورت زیر تعریف کنیم:

ادامه مطلب

استفاده از متغیر final در عبارت‌های لامبدا جاوا 8

عبارت‌های لامبدا (Lambda Expression) یکی از نکات قوت جاوا 8 محسوب می‌شوند و بوسیله‌ی آنها می‌توان تعداد خط کد (Line of Code) را کاهش داد، همچنین کدهای نوشته شده با عبارت‌های لامبدا دارای خوانایی بهتری هستند (به زبان انسان نزدیکترند). با استفاده از عبارت لامبدا دیگر نیاز نیست برای کارهای ساده (مثل حلقه‌های تکرار و فیلتر کردن مقادیر) کد بیشتر بنویسیم و درنهایت قابلیت استفاده‌ی مجدد از مزیت‌های عبارت‌های لامبدا محسوب می‌شود. من قبلا در این وبلاگ در دو پست پیاده‌سازی حلقه‌های تودرتو با استفاده از لامبدا در جاوا ۸ و معادل متد contains در جاوا ۸ به بیان چند مثال ساده از نحوه‌ی استفاده از عبارت‌های لامبدا پرداخته‌ام؛ در این نوشته نیز می‌خواهم نحوه‌ی استفاده از یک متغیر محلی (Local Variable) را تحت عنوان یک متغیر نهایی (final Variable) در عبارت‌های لامبدا را آموزش دهم.

ادامه مطلب

آموزش کار با formScanner در فریم‌ورک اسپرینگ

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن آموزش فریم ورک اسپرینگ در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. معمولا برای تولید گزارشات و ایجاد بارکد از jasperReport استفاده می‌کنیم. برای خواندن بار کد و سایر کارهای مربوط به پردازش تصویر نیز می‌توانیم از یک dependency با نام formscanner می‌توان استفاده کرد. برای استفاده از این dependency باید کد زیر را به pom.xml خود اضافه کنید.

ادامه مطلب

پیاده‌سازی حلقه‌های تودرتو با استفاده از لامبدا در جاوا ۸

جاوا یک زبان برنامه‌نویسیِ شیءگرا است که برای نخستین بار توسط جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد گردید. یکی از قابلیت‌های بنیادین جاوا این است که مدیریت حافظه را بطور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌شده به این زبان نسبت به زبانهای نسل اول C بالا است و وابسته به سیستم‌عامل خاصی نیست. فرض کنید یک List یا Set از یک parentObject داریم که آن نیز یک لیست یا List یا Set از یک childObject دارد. می‌خواهیم روی یکی از peopertyهای خاص childObject یک مقایسه انجام دهیم.

ادامه مطلب

معادل متد contains در جاوا ۸

جاوا یک زبان برنامه‌نویسیِ شیءگرا است که برای نخستین بار توسط جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد گردید. یکی از قابلیت‌های بنیادین جاوا این است که مدیریت حافظه را بطور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌شده به این زبان نسبت به زبانهای نسل اول C بالا است و وابسته به سیستم‌عامل خاصی نیست. فرض کنید یک List یا Set از چند Object داریم و می‌خواهیم بررسی کنیم که آیا یک Object خاص در این List یا Set وجود دارد یا خیر.

ادامه مطلب

ارث بری در جاوا

ارث بری (inheritance) یک مفهوم بنیادی و کلیدی در برنامه‌نویسی شی‌گرا است.در برنامه‌نویسی نیز این واژه مفهمومی مشابه دنیای واقعی دارد و به معنای ارث بردن خصوصیات است. در این نوشته قصد دارم نگاهی دوباره به ارث‌بری در جاوا داشته باشم.

ادامه مطلب

حذف یک موجودیت و وابستگی‌هایش به صورت سلسله مراتبی در فریم ورک اسپرینگ(Spring Framework)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ و هایبرنیت است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. هایبرنیت یک کتابخانه object-relational mapping برای زبان جاوا است که چارچوبی را برای نگاشتت یک شی به یک پایگاه داده رابطه‌ای فراهم می‌آورد. فرض کنید سه مدل که به صورت سلسله مراتبی و چند سطحی به هم وابستگی دارند؛ به عنوان مثال یک مدل تحت عنوان survey داریم که یک set از مدل question دارد که این مدل هم یک set از مدل option دارد.

ادامه مطلب

استفاده از تگ List در فایل هایبرنت (پیکربندی XML)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ و هایبرنیت است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. هایبرنیت یک کتابخانه object-relational mapping برای زبان جاوا است که چارچوبی را برای نگاشت یک شی به یک پایگاه داده رابطه‌ای فراهم می‌آورد. فرض کنید مدلی به نام سوالات (Question) داریم که شامل دو یا چند گزینه بوده و ارتباطی یک به چند با مدل گزینه‌ها (Option) دارد؛ باتوجه به اینکه ترتیب گزینه‌های سوال برای ما مهم است و می‌خواهیم هایبرنت به صورت خودکار ترتیب گزینه‌ها را برای ما حفظ کند.

ادامه مطلب

تنظیم header برای استریم فایل‌های بزرگ در فریم ورک اسپرینگ (SpringFramework)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. فرض کنید که می‌خواهیم از طریق یک rest، یک فایل را که در پایگاه داده یا دایرکتوری فایل وجود دارد را در client نمایش دهیم؛

ادامه مطلب

رفع مشکل Infinite Recursion در خروجی json در فریم ورک اسپرینگ برای مدل‌هایی که ارتباط دو طرفه دارند

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. فرض کنید که دو مدل داریم که با هم ارتباط bi-directional دارند؛ یعنی هر کدام از این مدل‌ها یک property از مدل دیگر دارند؛ view model برای این دو مدل به صورت زیر هستند:

ادامه مطلب

استفاده از JsonView در فریم ورک اسپرینگ (Spring Framework)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. به طور معمول برای نمایش دیتا به کاربر از view model استفاده می‌کنیم؛ اما گاهی اوقات پیش می‌آید که در جایی از پروژه، تمام فیلدهای view model را نیاز داشته باشیم و در جای دیگر بخشی از این فیلدها مورد نیاز باشد.

ادامه مطلب

چند مثال از عبارت‌های باقاعده (عبارت‌های منظم) در زبان جاوا

عبارت باقاعده، که تحت عنوان regex (مخفف regular expression) نیز نامیده می‌شود در کامپیوتر و برنامه‌نویسی، به معنی تطبیق رشته در متن است؛ به بیانی دیگر عبارت‌های منظم ترکیب‌هایی خاص از حروف و علامت‌ها هستند که برای جستجو و مقایسه‌ی رشته‌ها استفاده می‌شوند. در این نوشته قصد دارم که چند عبارت منظم در زیبان جاوا را بررسی کنم.

ادامه مطلب

بازنویسی url در فریم ورک اسپرینگ (Spring Framework)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. استفاده از slug (نامک) در آدرس‌ها و url صفحات مزایای زیادی از جمله SEO-friendly و user-friendy را به همراه دارد. tuckey یک dependency برای بازنویسی urlها (rewrite URLs) در زبان جاواست و عملکردی بسیار مشابه mod_rewrite آپاچی دارد.

ادامه مطلب

اعمال نشدن ترتیب برای فرزندان یک مدل در هایبرنیت (Hibernate)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ و هایبرنیت است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. هایبرنیت یک کتابخانه object-relational mapping برای زبان جاوا است که چارچوبی را برای نگاشت یک شی به یک پایگاه داده رابطه‌ای فراهم می‌آورد. در این نوشته قصد داریم مشکل اعمال نشدن ترتیب برای فرزندان یک مدل در هایبرنیت (Hibernate) را بررسی کنیم.

ادامه مطلب

دادن دسترسی به کاربران Login کرده در Spring-Security

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. پروژه‌ی Spring Security یکی از ابزارهای قدرتمند برای احراز هویت و دادن دسترسی در برنامه‌های اسپرینگ است. در این نوشته قصد داریم به کاربران وارد شده در اپلیکیشن (صرف نظر از هر Roleی که دارند) دسترسی بدهیم.

ادامه مطلب

راه‌اندازی سایت‌های چند زبانه در فریم ورک اسپرینگ (Spring Framework)

پیش از هر چیز باید بگویم که این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. امروزه چندزبانه بودن پورتال‌ها و سایت‌ها امر بسیار مهمی است و برای حضور در بازارهای جهانی و بین‌المللی یک نیاز است. در این نوشته قصد افزودن قابلیت internationalization به پروژه‌ی اسپرینگ را داریم.

ادامه مطلب

استفاده از subdomin در لوکال هاست (localhot)

در پروژه‌ای پیش آمده بود که برای تست و توسعه نیاز به استفاده ازsubdomain در localhost داشتیم. مشکلی که پیش آمده بود این بود که مشاهده کردیم که مروگر گوگل کروم در resolve این urlها مشکلی ندارد، در حالی که مرورگر فایرفاکس (و حتی اینترنت اکسپلورر) قادر به باز کردن subdomain نیست. برای مثال آدرس مورد نظر ما به صورت زیر بود:

ادامه مطلب

ساخت تصاویر Thumbnail در فریم ورک اسپرینگ

این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. مزیت ساخت تصاویر بندانگشتی (thumbnail) این است که حجم تصاویر صفحه وب کاهش یافته و سرعت بارگزاری (load) تصاویر در صفحات وب افزایش می‌یابد.

ادامه مطلب

تغییر jdbc url برای پشتیبانی از utf-8 در پایگاه داده MySql

این نوشته مربوط به فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته من می‌تواند مفید باشد. اگر پس از پیکربندی پایگاه داده‌ی MySql در پروژه اسپرینگ خود با درج حروف فارسی در پایگاه داده مشکل دارید نیازمند تغییر jdbc url به گونه‌ای هستید که از یونیکد (Unicode) نیز پشتیبانی کند.

ادامه مطلب

فریم ورک اسپرینگ (spring framework) چیست؟

در این نوشته قصد دارم که فریم‌ورک اسپرینگ و مفاهیم آن را به طور خلاصه بررسی کنم. فریم‌ورک اسپرینگ (Spring Framework) یکی از چهارچوب‌های برنامه‌نویسی معروف و پرکاربرد در زبان جاواست. این فریم‌ورک متن‌باز (Open Source) بوده و اولین نسخه آن در ماه ژوئن سال ۲۰۰۳ میلادی عرضه شده است. اسپرینگ از ابتدای ارائه تا به امروز تغییرات زیادی داشته و امکانات و ابزارهای بسیار قدرتمندی را در اختیار برنامه‌نویسان قرار می‌دهد. هدف اصلی اسپرینگ توسعه‌ی برنامه‌های Enterprise است و بیشتر در پلتفرم Java EE مورد استفاده قرار می‌گیرد. 

ادامه مطلب