افزودن Hibernate به پروژه
از سری مقالات آموزش Java Enterprise, میخواهیم مقدمات افزودن Hibernate به پروژه را بررسی کنیم.
در مقاله قبل, توضیحاتی پیرامون Hibernate و مزایای استفاده از آن داده شد. در این مقاله, میخواهیم با استفاده از مفاهیم گفته شده و همچنین ابزار موجود, امکان استفاده از Hibernate را برای برنامه فراهم کنیم. اما پیش از شروع, این پروژه را بدون دخالت Hibernate بررسی کنیم.
ابتدا نیاز است تا یک پایگاه داده طراحی کنیم و مواردی مانند جداول را تعریف کنیم. قدم بعدی ایجاد یک JDBC Handler است. در این کلاس, اطلاعات مورد نیاز برای ارتباط با پایگاه داده و متد تراکنش ها قرار میگیرد. نمونه ای از این کلاس را میتوانید از اینجا مشاهده کنید. سپس نیاز است تا مدل اطلاعات را ایجاد کنیم. برای مثال یک کلاس User ایجاد میکنیم و اطلاعات را در قالب متغیر های آن نگهداری میکنیم. در مرحله بعد باید با استفاده از متد هایی, این کلاس را مقدار دهی کنیم و به آن اعتبار دهیم.
اما وقتی از Hibernate استفاده میکنیم, مراحل انجام کار متفاوت است. در اینجا نیز اطلاعات مورد نیاز برای ارتباط با پایگاه داده مشخص میشود اما تفاوت آن با روش قبل است است که, این اطلاعات در Hibernate Configuration مشخص میشوند. Hibernate Configuration یک فایل xml است که در آن تنظیمات مربوط به Hibernate قرار میگیرد. در مرحله بعدی, مشخص کردن مدل اطلاعات است. در کلاس های مربوط به مدل از Annotation ها استفاده میکنیم. سپس مقدار دهی کلاس مدل ها و ارتباط با پایگاه داده از طریق Hibernate API انجام میشود. در حقیقت تمام مراحل ایجاد, مقدار دهی و انتقال اطلاعات را بر عهده Hibernate API قرار میدهیم. نکته جالب این است که طراحی پایگاه داده نیز بسیار ساده تر میشود. یعنی نیاز نیست تا جدول مربوط به اطلاعات را ایجاد کنیم. مهم ترین ویژگی استفاده از Hibernate این است که map کردن اطلاعات از Object به query را بسیار آسان میکند.
یک پروژه جدید در intellij ایجاد میکنیم و از قسمت Java Enterprise, گزینه Hibernate را انتخاب میکنیم. در این پروژه یک فایل hibernate.cfg.xml وجود دارد. میخواهیم پروژه این مقاله را با استفاده از Hibernate پیاده سازی کنیم. در این فایل تنظیمات مربوط به Hibernate را مشخص میکنیم. در این فایل یکسری tag ها به شرح ذیل مشخص شده است:
- dialect : دستورات SQL متناسب با پایگاه داده را مشخص میکند. لیست کامل hibernate dialect را میتوانید از اینجا ببینید
- driver class : کلاس JDBC Driver را مشخص میکند
- url : آدرس پایگاه داده را مشخص میکند
- Username : نام کاربری برای اتصال به پایگاه داده را مشخص میکند
- Password : رمز عبور برای اتصال به پایگاه داده را مشخص میکند
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="hibernate.connection.url"> jdbc:mysql://localhost/ZeroToHero </property> <property name="hibernate.connection.username"> vhdrjb </property> <property name="hibernate.connection.password"> password </property> <!-- DB schema will be updated if needed --> <!-- <property name="hbm2ddl.auto">update</property> --> </session-factory> </hibernate-configuration>
تمام مواردی که در Constructor کلاس JDBC Handler مشخص کردهایم را در hibernate.cfg.xml نیز مشخص میکنیم. سپس نیاز است تا Maven Dependency مربوط به Mysql را به پروژه اضافه کنیم:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> </dependencies>
میتوان property های دیگری نیز, متناسب با پروژه به hibernate.cfg.xml اضافه کرد:
- show sql : کد هایی که Hibernate ایجاد میکند را نمایش میدهد. مقدار آن میتواند true یا false باشد
- hbm2ddl auto : بر اساس مدل اطلاعات, اگر جدول مربوط به آن موجود نباشد, آن را ایجاد میکند
اکنون باید کلاس مدل را مشخص کنیم. کلاس User را به این صورت مینویسیم:
@Entity public class User { @Id private int code; private String name; private String location; public void setCode(int code) { this.code = code; } public void setName(String name) { this.name = name; } public void setLocation(String location) { this.location = location; } }
Entity annotation مشخص میکند که این کلاس یک مدل برای Hibernate است. Id Annotation مشخص میکند که متغیر code به عنوان primary key است. اکنون این کلاس را باید در hibernate.cfg.xml تعریف کنیم:
.... <mapping class="User"/> </session-factory> </hibernate-configuration>
در این مقاله سعی شد تا تنظیمات اولیه مربوط به ایجاد یک برنامه با استفاده از Hibernate را بررسی کنیم.
در مقاله بعد استفاده از Hibernate را مورد بررسی قرار میدهیم.
سری مقالات آموزش Hibernate ادامه دارد.
با ما همراه باشید.
مطالب زیر را حتما مطالعه کنید
از Java به Dart – کلاس و Constructor
آموزش Gradle – اهمیت Project Automation
تفاوت Sequence و List در کاتلین
بهترین محیط های توسعه(IDE) برای جاوا
Open/Closed Principle در قوانین Solid
توابع در زبان برنامه نویسی Kotlin
2 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
بسیار مفید
امیدوارم این مقالات ادامه داشته باشد.
پاینده و سبز باشید
ممنون از دلگرمی و همراهیتون دوست عزیز