{"id":28140,"date":"2021-07-25T22:19:29","date_gmt":"2021-07-25T15:19:29","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28140"},"modified":"2021-11-22T17:46:16","modified_gmt":"2021-11-22T10:46:16","slug":"hibernate-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/hibernate-la-gi\/","title":{"rendered":"Hibernate l\u00e0 g\u00ec? T\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Hibernate"},"content":{"rendered":"\n<p><strong>C\u1ed9ng \u0111\u1ed3ng l\u1eadp tr\u00ecnh kh\u00f4ng c\u00f2n xa l\u1ea1 v\u1edbi thu\u1eadt ng\u1eef JDBC &#8211; m\u1ed9t c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 k\u1ebft n\u1ed1i c\u01a1 s\u1edf d\u1eef li\u1ec7u. Tuy nhi\u00ean, khi l\u00e0m vi\u1ec7c v\u1edbi JDBC b\u1ea1n r\u1ea5t d\u1ec5 g\u1eb7p ph\u1ea3i nh\u1eefng sai s\u00f3t. \u0110\u1ec3 kh\u1eafc ph\u1ee5c \u0111i\u1ec1u n\u00e0y, Hibernate l\u00e0 m\u1ed9t l\u1ef1a ch\u1ecdn thay th\u1ebf ho\u00e0n h\u1ea3o. Hibernate l\u00e0 g\u00ec? Trong b\u00e0i vi\u1ebft h\u00f4m nay, ch\u00fang ta s\u1ebd c\u00f9ng t\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Hibernate nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"Hibernate_l\u00e0_g\u00ec?\"><strong>Hibernate l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<h3 id=\"\u0110\u1ecbnh_ngh\u0129a_Hibernate\"><strong>\u0110\u1ecbnh ngh\u0129a Hibernate<\/strong><\/h3>\n\n\n\n<p>Hibernate l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 ORM (<strong>Object Relational Mapping<\/strong>, t\u1ea1m d\u1ecbch: <em>\u00c1nh x\u1ea1 quan h\u1ec7 \u0111\u1ed1i t\u01b0\u1ee3ng<\/em>) c\u00f3 m\u00e3 ngu\u1ed3n m\u1edf, c\u00f3 ch\u1ee9c n\u0103ng cung c\u1ea5p m\u1ed9t framework \u0111\u1ec3 \u00e1nh x\u1ea1 h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng c\u00e1c m\u00f4 h\u00ecnh mi\u1ec1n th\u00e0nh c\u00e1c h\u1ec7 c\u01a1 s\u1edf d\u1eef li\u1ec7u cho c\u00e1c \u1ee9ng d\u1ee5ng web.<\/p>\n\n\n\n<p>ORM d\u1ef1a tr\u00ean vi\u1ec7c ch\u1ee9a c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng v\u00e0 s\u1ef1 tr\u1eebu t\u01b0\u1ee3ng h\u00f3a. T\u00ednh tr\u1eebu t\u01b0\u1ee3ng s\u1ebd gi\u00fap b\u1ea1n c\u00f3 th\u1ec3 x\u00e1c \u0111\u1ecbnh \u0111\u1ecba ch\u1ec9, truy c\u1eadp v\u00e0 thao t\u00e1c c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i xem x\u00e9t ch\u00fang c\u00f3 li\u00ean quan nh\u01b0 th\u1ebf n\u00e0o v\u1edbi ngu\u1ed3n d\u1eef li\u1ec7u c\u1ee7a ch\u00fang. Hibernate <a href=\"https:\/\/tino.vn\/blog\/framework-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">framework <\/a>c\u00f3 nhi\u1ec7m v\u1ee5 h\u01b0\u1edbng d\u1eabn \u00e1nh x\u1ea1 c\u00e1c l\u1edbp Java t\u1edbi b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u00e0 \u0111\u1ed3ng th\u1eddi thay \u0111\u1ed5i ki\u1ec3u d\u1eef li\u1ec7u Java sang ki\u1ec3u d\u1eef li\u1ec7u <a href=\"https:\/\/tino.vn\/blog\/mysql-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL<\/a>, c\u0169ng nh\u01b0 cung c\u1ea5p kh\u1ea3 n\u0103ng truy v\u1ea5n v\u00e0 truy xu\u1ea5t.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1213.png\" alt=\"Hibernate-la-gi\" class=\"wp-image-28142\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1213.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1213-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>M\u1ecdi thay \u0111\u1ed5i \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n \u0111\u1ec1u g\u00f3i g\u1ecdn trong ch\u00ednh ngu\u1ed3n d\u1eef li\u1ec7u, \u0111\u1ec3 khi c\u00e1c ngu\u1ed3n \u0111\u00f3 thay \u0111\u1ed5i ho\u1eb7c API c\u1ee7a ch\u00fang thay \u0111\u1ed5i, c\u00e1c \u1ee9ng d\u1ee5ng s\u1eed d\u1ee5ng ORM kh\u00f4ng c\u1ea7n thay \u0111\u1ed5i theo ho\u1eb7c th\u1eadm ch\u00ed kh\u00f4ng c\u1ea7n bi\u1ebft v\u1ec1 th\u00f4ng tin \u0111\u00f3. T\u01b0\u01a1ng t\u1ef1 nh\u01b0 v\u1eady, c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean s\u1ebd c\u00f3 m\u1ed9t c\u00e1i nh\u00ecn nh\u1ea5t qu\u00e1n v\u1ec1 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng theo th\u1eddi gian.<\/p>\n\n\n\n<p>Hibernate c\u00f3 s\u1eb5n mi\u1ec5n ph\u00ed \u0111\u1ec3 b\u1ea1n t\u1ea3i xu\u1ed1ng v\u00e0 \u0111\u01b0\u1ee3c c\u1ea5p ph\u00e9p theo <a href=\"https:\/\/en.wikipedia.org\/wiki\/GNU_Lesser_General_Public_License\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Lesser General Public License<\/a> (LGPL).<\/p>\n\n\n\n<h3 id=\"L\u1ecbch_s\u1eed_ra_\u0111\u1eddi_c\u1ee7a_Hibernate\"><strong>L\u1ecbch s\u1eed ra \u0111\u1eddi c\u1ee7a Hibernate<\/strong><\/h3>\n\n\n\n<p>Hibernate \u0111\u01b0\u1ee3c ra \u0111\u1eddi v\u00e0o n\u0103m 2001 b\u1edfi Gavin King v\u00e0i c\u00e1c \u0111\u1ed3ng nghi\u1ec7p c\u1ee7a \u00f4ng t\u1ea1i c\u00f4ng ty Cirrus Technologies, c\u00f4ng c\u1ee5 n\u00e0y \u0111\u01b0\u1ee3c xem nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p thay th\u1ebf cho vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c Entity Beans ki\u1ec3u EJB2. M\u1ee5c ti\u00eau ban \u0111\u1ea7u c\u1ee7a Hibernate l\u00e0 cung c\u1ea5p nh\u1eefng kh\u1ea3 n\u0103ng b\u1ec1n b\u1ec9 h\u01a1n so v\u1edbi nh\u1eefng g\u00ec EJB2 \u0111ang l\u00e0m. <\/p>\n\n\n\n<p>\u0110\u1ea7u n\u0103m 2003, nh\u00f3m ph\u00e1t tri\u1ec3n Hibernate b\u1eaft \u0111\u1ea7u ph\u00e1t h\u00e0nh Hibernate2. \u0110\u1ebfn n\u0103m 2005, Hibernate phi\u00ean b\u1ea3n 3.0 \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh. V\u00e0o th\u00e1ng 12 n\u0103m 2018, Hibernate ORM 5.4.0 Final ch\u00ednh th\u1ee9c \u0111\u01b0\u1ee3c ra m\u1eaft c\u1ed9ng \u0111\u1ed3ng.<\/p>\n\n\n\n<h2 id=\"Hibernate_h\u1ed7_tr\u1ee3_trong_l\u1eadp_tr\u00ecnh_nh\u01b0_th\u1ebf_n\u00e0o?\"><strong>Hibernate h\u1ed7 tr\u1ee3 trong l\u1eadp tr\u00ecnh nh\u01b0 th\u1ebf n\u00e0o?<\/strong><\/h2>\n\n\n\n<h3 id=\"Nh\u1eefng_ch\u1ee9c_n\u0103ng_ch\u00ednh_c\u1ee7a_Hibernate\"><strong>Nh\u1eefng ch\u1ee9c n\u0103ng ch\u00ednh c\u1ee7a Hibernate<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>S\u1eed d\u1ee5ng ng\u00f4n ng\u1eef truy v\u1ea5n c\u00f4ng c\u1ee5 n\u00e0y \u0111\u1ed9c l\u1eadp v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/li><li>H\u1ed7 tr\u1ee3 c\u00e1c ho\u1ea1t \u0111\u1ed9ng DDL t\u1ef1 \u0111\u1ed9ng.<\/li><li>C\u00f3 h\u1ed7 tr\u1ee3 t\u1ef1 \u0111\u1ed9ng t\u1ea1o kh\u00f3a ch\u00ednh.<\/li><li>H\u1ed7 tr\u1ee3 <a href=\"https:\/\/tino.vn\/blog\/bo-nho-cache-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">b\u1ed9 nh\u1edb Cache<\/a>.<\/li><li>X\u1eed l\u00fd ngo\u1ea1i l\u1ec7 kh\u00f4ng b\u1eaft bu\u1ed9c \u0111\u1ed1i v\u1edbi Hibernate.<\/li><li>\u0110\u1eb7c bi\u1ec7t, \u0111\u00e2y l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 ORM.<\/li><\/ul>\n\n\n\n<h3 id=\"C\u00e1c_lo\u1ea1i_c\u01a1_s\u1edf_d\u1eef_li\u1ec7u_\u0111\u01b0\u1ee3c_Hibernate_h\u1ed7_tr\u1ee3\"><strong>C\u00e1c lo\u1ea1i c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c<\/strong> <strong>Hibernate h\u1ed7 tr\u1ee3<\/strong><\/h3>\n\n\n\n<p>Hibernate h\u1ed7 tr\u1ee3 c\u00e1c lo\u1ea1i c\u01a1 s\u1edf d\u1eef li\u1ec7u d\u01b0\u1edbi \u0111\u00e2y:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>HSQL Database Engine<\/li><li><a href=\"https:\/\/tino.vn\/blog\/mysql-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">MYSQL<\/a><\/li><li><a href=\"https:\/\/tino.vn\/blog\/oracle-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">ORACLE<\/a><\/li><li>FrontBase<\/li><li>PostgreSQL<\/li><li>DB2\/NT<\/li><li>Sybase SQL Server<\/li><li>Informix Dynamic Server<\/li><li>Microsoft SQL Server Database<\/li><\/ul>\n\n\n\n<h3 id=\"C\u00e1c_c\u00f4ng_ngh\u1ec7_\u0111\u01b0\u1ee3c_Hibernate_h\u1ed7_tr\u1ee3\"><strong>C\u00e1c c\u00f4ng ngh\u1ec7 \u0111\u01b0\u1ee3c Hibernate h\u1ed7 tr\u1ee3<\/strong><\/h3>\n\n\n\n<p>Hibernate h\u1ed7 tr\u1ee3 nhi\u1ec1u lo\u1ea1i c\u00f4ng ngh\u1ec7 nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>XDoclet Spring<\/li><li>Maven<\/li><li>Eclipse Plug-ins<\/li><li>J2EE<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1214.png\" alt=\"Hibernate-la-gi\" class=\"wp-image-28143\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1214.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1214-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"\u01afu_\u0111i\u1ec3m_v\u00e0_nh\u01b0\u1ee3c_\u0111i\u1ec3m_khi_d\u00f9ng_Hibernate\"><strong>\u01afu \u0111i\u1ec3m v\u00e0 nh\u01b0\u1ee3c \u0111i\u1ec3m khi d\u00f9ng Hibernate<\/strong><\/h2>\n\n\n\n<h3 id=\"\u01afu_\u0111i\u1ec3m\"><strong>\u01afu \u0111i\u1ec3m<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Hibernate kh\u00e1 nh\u1eb9 v\u00e0 l\u00e0 m\u00e3 ngu\u1ed3n m\u1edf n\u00ean s\u1ebd gi\u00fap b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp hi\u1ec7u qu\u1ea3.<\/li><li>Hibernate s\u1eed d\u1ee5ng b\u1ed9 nh\u1edb \u0111\u1ec7m gi\u00fap hi\u1ec7u su\u1ea5t nhanh h\u01a1n.<\/li><li>T\u00ednh \u0111\u1ed9c l\u1eadp v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u mang l\u1ea1i cho Hibernate kh\u1ea3 n\u0103ng l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00e1c nhau.<\/li><li>Cung c\u1ea5p ch\u1ee9c n\u0103ng b\u1ea3ng t\u1ef1 \u0111\u1ed9ng gi\u00fap b\u1ea1n kh\u00f4ng ph\u1ea3i t\u1ea1o b\u1ea3ng theo c\u00e1ch th\u1ee7 c\u00f4ng.<\/li><li>Hibernate x\u1eed l\u00fd \u00e1nh x\u1ea1 c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u00e1c l\u1edbp Java b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c t\u1ec7p XML m\u00e0 kh\u00f4ng c\u1ea7n vi\u1ebft b\u1ea5t k\u1ef3 m\u00e3 n\u00e0o.<\/li><li>B\u1ea1n c\u00f3 th\u1ec3 tr\u1ef1c ti\u1ebfp l\u01b0u tr\u1eef v\u00e0 truy xu\u1ea5t d\u1eef li\u1ec7u tr\u1ef1c ti\u1ebfp t\u1eeb c\u01a1 s\u1edf d\u1eef li\u1ec7u b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c API \u0111\u01a1n gi\u1ea3n.<\/li><li>Hibernate kh\u00f4ng y\u00eau c\u1ea7u b\u1ea5t k\u1ef3 m\u00e1y ch\u1ee7 \u1ee9ng d\u1ee5ng n\u00e0o \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng.<\/li><li>Gi\u1ea3m thi\u1ec3u truy c\u1eadp c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u1edbi c\u00e1c chi\u1ebfn l\u01b0\u1ee3c t\u00ecm n\u1ea1p th\u00f4ng minh.<\/li><li>Hibernate cung c\u1ea5p kh\u1ea3 n\u0103ng truy v\u1ea5n d\u1eef li\u1ec7u \u0111\u01a1n gi\u1ea3n.<\/li><li>Hibernate kh\u00e1 an to\u00e0n trong c\u00e1c truy v\u1ea5n<\/li><\/ul>\n\n\n\n<h3 id=\"Nh\u01b0\u1ee3c_\u0111i\u1ec3m\"><strong>Nh\u01b0\u1ee3c \u0111i\u1ec3m<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>C\u00f4ng c\u1ee5 n\u00e0y kh\u00f4ng h\u1ed7 tr\u1ee3 c\u00e1c c\u00e2u truy v\u1ea5n ph\u1ee9c t\u1ea1p<\/li><li>Trong m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p, b\u1ea1n v\u1eabn ph\u1ea3i d\u00f9ng native SQL do Hibernate kh\u00f4ng th\u1ec3 h\u1ed7 tr\u1ee3 h\u1ebft t\u1ea5t c\u1ea3 c\u00e1c c\u00fa ph\u00e1p c\u1ee7a c\u00e1c h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1eed d\u1eef li\u1ec7u.<\/li><li>B\u1ecb h\u1ea1n ch\u1ebf s\u1ef1 can thi\u1ec7p v\u00e0o c\u00e2u l\u1ec7nh SQL do nh\u1eefng c\u00e2u l\u1ec7nh n\u00e0y \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng sinh ra.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1215.png\" alt=\"Hibernate-la-gi\" class=\"wp-image-28144\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1215.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1215-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"T\u1ea1i_sao_n\u00ean_d\u00f9ng_Hibernate_\u0111\u1ec3_thay_th\u1ebf_cho_JDBC?\"><strong>T\u1ea1i sao n\u00ean d\u00f9ng Hibernate \u0111\u1ec3 thay th\u1ebf cho JDBC?<\/strong><\/h2>\n\n\n\n<h3 id=\"JDBC_l\u00e0_g\u00ec?\"><strong>JDBC l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p>JDBC l\u00e0 vi\u1ebft t\u1eafc c\u1ee7a <strong>Java Database Connectivity<\/strong>, \u0111\u00e2y l\u00e0 m\u1ed9t chu\u1ea9n API \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 k\u1ebft n\u1ed1i c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh vi\u1ebft b\u1edfi Java v\u1edbi c\u00e1c h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u1ed5 bi\u1ebfn nh\u01b0 MySQL, MS SQL, Postgre SQL, Oracle, DB2\u2026<\/p>\n\n\n\n<p>Tuy nhi\u00ean, JDBC ch\u1ec9 l\u00e0 m\u1ed9t t\u1eadp c\u00e1c interface, th\u00f4ng b\u00e1o l\u1ed7i, c\u00e1c \u0111\u1ecbnh ngh\u0129a hay c\u00e1c \u0111\u1eb7c t\u1ea3 ch\u1ee9 kh\u00f4ng ph\u1ea3i l\u00e0 th\u01b0 vi\u1ec7n trong Java. V\u1edbi m\u1ed7i h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00e1c nhau, ta s\u1ebd c\u00f3 m\u1ed9t c\u00e0i \u0111\u1eb7t JDBC ri\u00eang cho ch\u00fang, v\u00ed d\u1ee5 JDBC cho MySQL ho\u1eb7c JDBC cho MS SQL\u2026<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1216.png\" alt=\"Hibernate-la-gi\" class=\"wp-image-28145\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1216.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1216-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"Nh\u1eefng_\u0111i\u1ec3m_h\u1ea1n_ch\u1ebf_c\u1ee7a_JDBC\"><strong>Nh\u1eefng \u0111i\u1ec3m h\u1ea1n ch\u1ebf c\u1ee7a JDBC<\/strong><\/h3>\n\n\n\n<p>Theo th\u1eddi gian, JDBC b\u1ed9c l\u1ed9 nhi\u1ec1u \u0111i\u1ec3m y\u1ebfu c\u1ed1 h\u1eefu nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>C\u00f3 nhi\u1ec1u code th\u1eeba nh\u01b0ng ch\u1ec9 ph\u1ee5c v\u1ee5 cho m\u1ee5c \u0111\u00edch l\u1ea5y d\u1eef li\u1ec7u.<\/li><li>T\u1ed1n nhi\u1ec1u th\u1eddi gian \u0111\u1ec3 \u00e1nh x\u1ea1 d\u1eef li\u1ec7u v\u00e0o object Java.<\/li><li>S\u1ebd m\u1ea5t nhi\u1ec1u c\u00f4ng s\u1ee9c khi h\u1ec7 th\u1ed1ng thay \u0111\u1ed5i c\u01a1 s\u1edf d\u1eef li\u1ec7u nh\u01b0 y\u00eau c\u1ea7u JDBC m\u1edbi, code m\u1edbi,..<\/li><li>Giao ti\u1ebfp gi\u1eefa c\u00e1c b\u1ea3ng t\u01b0\u01a1ng \u0111\u1ed1i ph\u1ee9c t\u1ea1p, thi\u1ebfu \u0111i t\u00ednh OOP trong \u0111\u00f3.<\/li><\/ul>\n\n\n\n<h3 id=\"S\u1eed_d\u1ee5ng_Hibernate_\u0111\u1ec3_thay_th\u1ebf_cho_JDBC\"><strong>S\u1eed d\u1ee5ng Hibernate \u0111\u1ec3 thay th\u1ebf cho JDBC<\/strong><\/h3>\n\n\n\n<p>S\u1ef1 ra \u0111\u1eddi c\u1ee7a Hibernate \u0111\u1ec3 gi\u1ea3i quy\u1ebft nh\u1eefng v\u1ea5n \u0111\u1ec1 m\u00e0 JDBC ch\u01b0a th\u1ec3 kh\u1eafc ph\u1ee5c \u0111\u01b0\u1ee3c. H\u00e3y xem c\u00e1ch Hibernate t\u1ed1i \u01b0u h\u00f3a c\u00e1c t\u00e1c v\u1ee5 t\u1ed1t h\u01a1n JDBC nh\u01b0 th\u1ebf n\u00e0o nh\u00e9!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Hibernate kh\u1eafc ph\u1ee5c t\u00ecnh tr\u1ea1ng ph\u1ee5 thu\u1ed9c v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u trong JDBC.<\/li><li>Vi\u1ec7c thay \u0111\u1ed5i c\u01a1 s\u1edf d\u1eef li\u1ec7u t\u1ed1n r\u1ea5t nhi\u1ec1u c\u00f4ng s\u1ee9c tr\u00ean JDBC, Hibernate s\u1ebd kh\u1eafc ph\u1ee5c \u0111\u01b0\u1ee3c v\u1ea5n \u0111\u1ec1 n\u00e0y m\u1ed9t c\u00e1ch xu\u1ea5t s\u1eafc.<\/li><li>T\u00ednh di \u0111\u1ed9ng c\u1ee7a m\u00e3 code kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t t\u00f9y ch\u1ecdn trong khi l\u00e0m vi\u1ec7c tr\u00ean JDBC. Ng\u01b0\u1ee3c l\u1ea1i, Hibernate s\u1ebd x\u1eed l\u00fd v\u1ea5n \u0111\u1ec1 n\u00e0y m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng.<\/li><li>Hibernate c\u1ee7ng c\u1ed1 v\u00e0 kh\u1eafc ph\u1ee5c m\u1ed1i quan h\u1ec7 c\u1ea5p \u0111\u1ed9 \u0111\u1ed1i t\u01b0\u1ee3ng<\/li><li>Hibernate v\u01b0\u1ee3t qua ph\u1ea7n x\u1eed l\u00fd ngo\u1ea1i l\u1ec7, trong khi v\u1ea5n \u0111\u1ec1 n\u00e0y l\u00e0 b\u1eaft bu\u1ed9c khi l\u00e0m vi\u1ec7c tr\u00ean JDBC.<\/li><li>Hibernate l\u00e0m gi\u1ea3m \u0111\u1ed9 d\u00e0i c\u1ee7a m\u00e3 code v\u1edbi kh\u1ea3 n\u0103ng \u0111\u1ecdc \u0111\u01b0\u1ee3c t\u0103ng l\u00ean b\u1eb1ng c\u00e1ch kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 b\u1ea3ng m\u1eabu.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1217.png\" alt=\"Hibernate-la-gi\" class=\"wp-image-28146\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1217.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1217-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<p>Hibernate mang l\u1ea1i cho c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00e1c gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u v\u00e0 hi\u1ec7u qu\u1ea3, v\u00ec v\u1eady khi l\u00e0m vi\u1ec7c v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u s\u1ebd tr\u1edf n\u00ean kh\u00e1 d\u1ec5 d\u00e0ng m\u00e0 kh\u00f4ng c\u1ea7n b\u1ea5t k\u1ef3 s\u1ef1 ph\u1ee5 thu\u1ed9c n\u00e0o. B\u00e0i vi\u1ebft \u0111\u00e3 gi\u00fap b\u1ea1n c\u00f3 c\u00e1i nh\u00ecn t\u1ed5ng quan v\u1ec1 Hibernate, hy v\u1ecdng nh\u1eefng th\u00f4ng tin n\u00e0y s\u1ebd cung c\u1ea5p cho b\u1ea1n m\u1ed9t ki\u1ebfn th\u1ee9c m\u1edbi trong ng\u00e0nh l\u1eadp tr\u00ecnh.<\/p>\n\n\n\n<h2 id=\"FAQs_v\u1ec1_Hibernate\"><strong>FAQs v\u1ec1 Hibernate<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"ORM_l\u00e0_g\u00ec?\">ORM l\u00e0 g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>ORM l\u00e0 t\u1eeb vi\u1ebft t\u1eaft c\u1ee7a c\u1ee5m t\u1eeb <strong>Object Relational Mapping<\/strong>. C\u00f4ng c\u1ee5 n\u00e0y c\u00f3 m\u1ee5c \u0111\u00edch gi\u00fap cho c\u00e1c thao t\u00e1c v\u00e0 truy c\u1eadp d\u1eef li\u1ec7u tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n nh\u1ea5t c\u00f3 th\u1ec3 b\u1eb1ng c\u00e1ch mapping object (\u0111\u1ed1i t\u01b0\u1ee3ng \u00e1nh x\u1ea1) theo d\u1eef li\u1ec7u c\u1ee7a ch\u00fang. \u0110\u00e2y l\u00e0 m\u1ed9t kh\u00e1i ni\u1ec7m r\u1ea5t c\u01a1 b\u1ea3n v\u00e0 c\u0169ng l\u00e0 c\u01a1 s\u1edf \u0111\u1ec3 x\u00e2y d\u1ef1ng Hibernate.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00e1c_t\u00e0i_li\u1ec7u_\u00e1nh_x\u1ea1_s\u1ebd_\u0111\u01b0\u1ee3c_l\u01b0u_tr\u1eef_\u1edf_\u0111\u00e2u_trong_Hibernate_framework?\">C\u00e1c t\u00e0i li\u1ec7u \u00e1nh x\u1ea1 s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef \u1edf \u0111\u00e2u trong Hibernate framework?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>T\u1ea5t c\u1ea3 c\u00e1c t\u00e0i li\u1ec7u \u00e1nh x\u1ea1 (Mapping Document) c\u1ee7a Hibernate framework \u0111\u1ec1u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong Configuration Interface (Giao di\u1ec7n c\u1ea5u h\u00ecnh). Giao di\u1ec7n n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u01b0u tr\u1eef nh\u1eefng t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c \u0111\u1ec1 c\u1eadp tr\u01b0\u1edbc \u0111\u00f3 c\u00f9ng v\u1edbi c\u00e1c l\u1ec7nh c\u1ea5u h\u00ecnh d\u00e0nh ri\u00eang cho v\u1ea5n \u0111\u1ec1 cho ch\u00ednh framework.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00f3_m\u1ea5y_c\u00e1ch_\u0111\u1ec3_c\u1ea5u_h\u00ecnh_Hibernate?\">C\u00f3 m\u1ea5y c\u00e1ch \u0111\u1ec3 c\u1ea5u h\u00ecnh Hibernate?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>C\u00f3 hai c\u00e1ch ch\u00ednh \u0111\u1ec3 c\u1ea5u h\u00ecnh Hibernate: s\u1eed d\u1ee5ng XML v\u00e0 annotation (ch\u00fa th\u00edch) do Java cung c\u1ea5p.<\/p>\n\n\n\n<p>Trong nh\u1eefng phi\u00ean b\u1ea3n Hibernate tr\u01b0\u1edbc Hibernate 4.0, c\u00e1ch duy nh\u1ea5t \u0111\u1ec3 c\u1ea5u h\u00ecnh cho Hibernate framework l\u00e0 s\u1eed d\u1ee5ng XML. C\u00f2n c\u00e1ch c\u1ea5u h\u00ecnh v\u1edbi ch\u00fa th\u00edch d\u1ef1a tr\u00ean Java ch\u1ec9 c\u00f3 s\u1eb5n trong c\u00e1c phi\u00ean b\u1ea3n 4.0 tr\u1edf l\u00ean.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u00f3_n\u00ean_s\u1eed_d\u1ee5ng_POJO_khi_l\u00e0m_vi\u1ec7c_v\u1edbi_Hibernate_kh\u00f4ng?\">C\u00f3 n\u00ean s\u1eed d\u1ee5ng POJO khi l\u00e0m vi\u1ec7c v\u1edbi Hibernate kh\u00f4ng?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>POJO l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Plain Old Java Object<\/strong>, t\u1ea1m d\u1ecbch: <strong>\u0110\u1ed1i t\u01b0\u1ee3ng Java c\u0169 \u0111\u01a1n gi\u1ea3n<\/strong>. \u0110\u00e2y \u0111\u1ec1u l\u00e0 nh\u1eefng \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng y\u00eau c\u1ea7u m\u1ed9t \u0111\u01b0\u1eddng d\u1eabn c\u1ee5 th\u1ec3, do \u0111\u00f3 s\u1ebd kh\u00f4ng b\u1ecb h\u1ea1n ch\u1ebf d\u01b0\u1edbi b\u1ea5t k\u1ef3 h\u00ecnh th\u1ee9c ho\u1eb7c h\u00ecnh d\u1ea1ng. L\u1eddi khuy\u00ean l\u00e0 b\u1ea1n n\u00ean s\u1eed d\u1ee5ng POJO trong c\u00e1c d\u1ef1 \u00e1n Hibernate c\u1ee7a m\u00ecnh, v\u00ec ch\u00fang s\u1ebd cung c\u1ea5p nh\u1eefng m\u00e3 code ho\u1ea1t \u0111\u1ed9ng t\u1ed1t h\u01a1n, m\u01b0\u1ee3t m\u00e0 h\u01a1n khi so s\u00e1nh v\u1edbi m\u1ed9t l\u1edbp Java ti\u00eau chu\u1ea9n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"ORM l\u00e0 g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>ORM l\u00e0 t\u1eeb vi\u1ebft t\u1eaft c\u1ee7a c\u1ee5m t\u1eeb <strong>Object Relational Mapping<\/strong>. C\u00f4ng c\u1ee5 n\u00e0y c\u00f3 m\u1ee5c \u0111\u00edch gi\u00fap cho c\u00e1c thao t\u00e1c v\u00e0 truy c\u1eadp d\u1eef li\u1ec7u tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n nh\u1ea5t c\u00f3 th\u1ec3 b\u1eb1ng c\u00e1ch mapping object (\u0111\u1ed1i t\u01b0\u1ee3ng \u00e1nh x\u1ea1) theo d\u1eef li\u1ec7u c\u1ee7a ch\u00fang. \u0110\u00e2y l\u00e0 m\u1ed9t kh\u00e1i ni\u1ec7m r\u1ea5t c\u01a1 b\u1ea3n v\u00e0 c\u0169ng l\u00e0 c\u01a1 s\u1edf \u0111\u1ec3 x\u00e2y d\u1ef1ng Hibernate.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00e1c t\u00e0i li\u1ec7u \u00e1nh x\u1ea1 s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef \u1edf \u0111\u00e2u trong Hibernate framework?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>T\u1ea5t c\u1ea3 c\u00e1c t\u00e0i li\u1ec7u \u00e1nh x\u1ea1 (Mapping Document) c\u1ee7a Hibernate framework \u0111\u1ec1u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong Configuration Interface (Giao di\u1ec7n c\u1ea5u h\u00ecnh). Giao di\u1ec7n n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u01b0u tr\u1eef nh\u1eefng t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c \u0111\u1ec1 c\u1eadp tr\u01b0\u1edbc \u0111\u00f3 c\u00f9ng v\u1edbi c\u00e1c l\u1ec7nh c\u1ea5u h\u00ecnh d\u00e0nh ri\u00eang cho v\u1ea5n \u0111\u1ec1 cho ch\u00ednh framework.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00f3 m\u1ea5y c\u00e1ch \u0111\u1ec3 c\u1ea5u h\u00ecnh Hibernate?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>C\u00f3 hai c\u00e1ch ch\u00ednh \u0111\u1ec3 c\u1ea5u h\u00ecnh Hibernate: s\u1eed d\u1ee5ng XML v\u00e0 annotation (ch\u00fa th\u00edch) do Java cung c\u1ea5p.<\/p><p>Trong nh\u1eefng phi\u00ean b\u1ea3n Hibernate tr\u01b0\u1edbc Hibernate 4.0, c\u00e1ch duy nh\u1ea5t \u0111\u1ec3 c\u1ea5u h\u00ecnh cho Hibernate framework l\u00e0 s\u1eed d\u1ee5ng XML. C\u00f2n c\u00e1ch c\u1ea5u h\u00ecnh v\u1edbi ch\u00fa th\u00edch d\u1ef1a tr\u00ean Java ch\u1ec9 c\u00f3 s\u1eb5n trong c\u00e1c phi\u00ean b\u1ea3n 4.0 tr\u1edf l\u00ean.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u00f3 n\u00ean s\u1eed d\u1ee5ng POJO khi l\u00e0m vi\u1ec7c v\u1edbi Hibernate kh\u00f4ng?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>POJO l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>Plain Old Java Object<\/strong>, t\u1ea1m d\u1ecbch: <strong>\u0110\u1ed1i t\u01b0\u1ee3ng Java c\u0169 \u0111\u01a1n gi\u1ea3n<\/strong>. \u0110\u00e2y \u0111\u1ec1u l\u00e0 nh\u1eefng \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng y\u00eau c\u1ea7u m\u1ed9t \u0111\u01b0\u1eddng d\u1eabn c\u1ee5 th\u1ec3, do \u0111\u00f3 s\u1ebd kh\u00f4ng b\u1ecb h\u1ea1n ch\u1ebf d\u01b0\u1edbi b\u1ea5t k\u1ef3 h\u00ecnh th\u1ee9c ho\u1eb7c h\u00ecnh d\u1ea1ng. L\u1eddi khuy\u00ean l\u00e0 b\u1ea1n n\u00ean s\u1eed d\u1ee5ng POJO trong c\u00e1c d\u1ef1 \u00e1n Hibernate c\u1ee7a m\u00ecnh, v\u00ec ch\u00fang s\u1ebd cung c\u1ea5p nh\u1eefng m\u00e3 code ho\u1ea1t \u0111\u1ed9ng t\u1ed1t h\u01a1n, m\u01b0\u1ee3t m\u00e0 h\u01a1n khi so s\u00e1nh v\u1edbi m\u1ed9t l\u1edbp Java ti\u00eau chu\u1ea9n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"<p>C\u1ed9ng \u0111\u1ed3ng l\u1eadp tr\u00ecnh kh\u00f4ng c\u00f2n xa l\u1ea1 v\u1edbi thu\u1eadt ng\u1eef JDBC &#8211; m\u1ed9t c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 k\u1ebft n\u1ed1i c\u01a1 s\u1edf d\u1eef li\u1ec7u. Tuy nhi\u00ean, khi l\u00e0m vi\u1ec7c v\u1edbi JDBC b\u1ea1n r\u1ea5t d\u1ec5 g\u1eb7p ph\u1ea3i nh\u1eefng sai s\u00f3t. \u0110\u1ec3 kh\u1eafc ph\u1ee5c \u0111i\u1ec1u n\u00e0y, Hibernate l\u00e0 m\u1ed9t l\u1ef1a ch\u1ecdn thay th\u1ebf ho\u00e0n h\u1ea3o. Hibernate [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":28141,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6706],"class_list":["post-28140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-kien-thuc-lap-trinh"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28140"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28140\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28141"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}