²Â²Â¿´£¬Hibernate»áÖ´Ðм¸¾äSQL(Ò»)
POEAAÖнéÉÜÁËORMÖÐ×îÖØÒªµÄģʽ֮һ£ºUnit Of Work¡£¿´ËƼòµ¥£¬ÊµÏÖÆðÀ´È´·Ç³£¸´ÔÓ¡£
HibernateÍêÃÀµÄʵÏÖÁËÕâ¸öģʽ¡£ÒÔÏÂÎÒÓÃһϵÁеÄÀý×ÓÀ´·ÖÎöHibernateµÄ´¦Àí»úÖÆ
ÏÂÃæÓÐÈý¸öÀý×Ó£¬²Â²Â¿´Hibernate»áÖ´Ðм¸¾äSQL(Ê¡ÂÔÊÂÎñ´¦Àí´úÂ룬ʵÌå¶ÔÏó½ÐUser£¬¼ÙÉèÖ÷¼üÊÇ×ÔÔöÐ͵Ä)
Àý1:
User user = new User();
user.setName("KENT");
session.save(user);
session.save(user);
Àý2:
User user = new User();
user.setName("KENT");
session.save(user);
user.setName("JACK");
session.save(user);
Àý3:
User user = new User();
user.setName("KENT");
session.save(user);
user.setName("JACK");
session.save(user);
user.setName("TOM");
session.save(user);
ÈÃÎÒÃÇ¿´¿´´ð°¸
Àý1:Á½´Îsave£¬½ö½öÖ´ÐÐinsertÓï¾äÒ»´Î£¬Ã»ÓÐÖ´ÐÐupdate
Àý2:Ö´ÐÐinsertÓï¾äÒ»´Î£¬ÏÈinsert³ÉKENT£¬È»ºóÖ´ÐÐupdate£¬È»ºóupdate³ÉJACK
Àý3:Ö´ÐÐinsertÓï¾äÒ»´Î£¬ÏÈinsert³ÉKENT£¬È»ºóÖ´ÐÐupdate£¬È»ºóupdate³ÉTOM£¬Ã»ÓÐupdate³ÉJACKµÄ¹ý³Ì
Äã²Â¶ÔÁËÂð£¿
ÎÒÃÇ¿´HibernateÔ´Â룬¿´µ½UnitOfWork´óÖÂÔÀíÊÇÕâÑùµÄ£º
Hibernate²¢²»ÊÇsave()Á˾ÍÖ±½ÓÖ´ÐÐsql£¬¶øÊÇʹÓÃÑÓʱִÐеķ½Ê½¡£Ö±µ½flushʱ²Å»áÒ»´ÎÐÔÖ´Ðжà¾äsql
HibernateʹÓÃAction½Ó¿Ú±íʾÿ´ÎÔöɾ¸ÄµÄÐÐΪ£¬ËùÓеÄÐÐΪ¶¼Ê¹ÓÃActionQueueÅÅÐò
µ±Ö´ÐÐÒ»´Îsave()·½·¨£¬Hibernate»áÅжϴ˶ÔÏóµÄ״̬¡£Èç¹ûÊÇTransient¾ÍÔÚActionQueueÖÐÔö¼ÓÒ»¸öInsertAction£¬²¢Éú³É´Ë¶ÔÏóµÄÖ÷¼ü£¬°Ñ´Ë¶ÔÏó±ê¼ÇΪPersistent¡£Í¬Ê±£¬»á°ÑËùÓÐÊôÐÔµÄ״̬±£´æµ½Ò»¸öÊý×éÖС£
ÔÙ´ÎÖ´ÐÐsave()·½·¨Ê±£¬Èç¹ûÊÇPersistent£¬²¢²»»áÖ±½Ó²úÉúupdateAction
µ±Êý¾Ýcommit֮ǰ£¬Ò»¶¨»áÖ´ÐÐflush()£¬¸ù¾Ý±£´æµÄËùÓÐÊôÐÔµÄ״̬£¬Åжϵ±Ç°¶ÔÏóµÄ×Ö¶ÎÊÇ·ñ±»¸üйý£¬Èç¹û±»¸üйý£¬Ôò»áÔÚActionQueueÖÐÔö¼ÓÒ»¸öUpdateAction
ËùÒÔ
Àý1»á²úÉúInsertAction
Àý2»á²úÉúInsertAction¡¢UpdateAction
Àý3»á²úÉúInsertAction¡¢UpdateAction
´ËÀýÖÐÖ»ÊÇÐÂÔö»òÐ޸ģ¬Èç¹ûÓÐɾ³ýºÍ²éѯ£¬HibernateÓÖ»áÈçºÎ´¦ÀíÄØ£¿
Çë¿´ºóÎÄ......
Ïà¹ØÎĵµ£º
Join²Ù×÷·û
ÊÊÓó¡¾°£ºÔÚÎÒÃÇ±í¹ØÏµÖÐÓÐÒ»¶ÔÒ»¹ØÏµ£¬Ò»¶Ô¶à¹ØÏµ£¬¶à¶Ô¶à¹ØÏµµÈ¡£¶Ô¸÷¸ö±íÖ®¼äµÄ¹ØÏµ£¬¾ÍÓÃÕâЩʵÏÖ¶Ô¶à¸ö±íµÄ²Ù×÷¡£
˵Ã÷£ºÔÚJoin²Ù×÷ÖУ¬·Ö±ðΪJoin(Join²éѯ), SelectMany(SelectÒ»¶Ô¶àÑ¡Ôñ)ºÍGroupJoin(·Ö×éJoin²éѯ)¡£
¸ÃÀ©Õ¹·½·¨¶ÔÁ½¸öÐòÁÐÖмüÆ¥ÅäµÄÔªËØ½øÐÐinner join²Ù×÷
SelectMany
˵Ã÷£ºÎÒà ......
ʾÀý
A. ʹÓôøÓи´ÔÓ SELECT Óï¾äµÄ¼òµ¥¹ý³Ì
ÏÂÃæµÄ´æ´¢¹ý³Ì´ÓËĸö±íµÄÁª½ÓÖзµ»ØËùÓÐ×÷Õߣ¨ÌṩÁËÐÕÃû£©¡¢³ö°æµÄÊé¼®ÒÔ¼°³ö°æÉç¡£¸Ã´æ´¢¹ý³Ì²»Ê¹ÓÃÈκβÎÊý¡£
USE pubs
IF EXISTS (SELECT name from sysobjects
WHERE name = 'au_info_all' AND type = 'P')
&nb ......
»Ö¸´Ä£Ê½ÊÇÊý¾Ý¿âµÄÒ»ÖÖÌØÐÔ,Ëü¿ØÖÆ×ÅÊý¾Ý¿â±¸·ÝºÍ»¹ÔµÄ»ù±¾ÐÐΪ.
sql server ÌṩÁËÈýÖÖ»Ö¸´Ä£Ê½,ËûÃǾö¶¨ÁËÓжàÉÙºÍʲôÑùµÄÊý¾Ý¿ÉÒÔ±»±¸·ÝÏÂÀ´.
1.¼òµ¥»Ö¸´Ä£Ê½
Ö÷ÒªÓ¦ÓÃÓÚСÐÍÊý¾Ý¿âºÍ²»¾³£¸Ä±äµÄÊý¾Ý
2.ÍêÕû»Ö¸´Ä£Ê½
¿ÉÒÔÔÚ×î´ó·¶Î§ÄÚ·ÀÖ¹³öÏÖ¹ÊÕÏʱ¶ªÊ§Êý¾Ý,Ëü°üÀ¨Êý¾Ý¿â±¸·ÝºÍʳÎïÈÕÖ¾±¸·Ý,²¢Ìá¹ ......
ÊÂÎñ¾ÍÊǸºÔð°ÑһϵÁвÙ×÷¿´×öÒ»¸ö¶ÀÁ¢µÄÂß¼µ¥Ôª£¬ÕâЩ²Ù×÷Ҫôͬʱ³É¹¦£¬ÒªÃ´Í¬Ê±Ê§°Ü¡£ÏÂÃæÊÇÒ»¸ö¾µäµÄÀý×Ó£º
create procedure TransferMoeny
(
@fromAccountNo varchar(50),-- ת³öÕ˺Å
@ToAccountNo varchar(50),--תÈëÕ˺Å
& ......
SELECT TOP (100) PERCENT
CASE WHEN a.colorder = 1 THEN d .name ELSE '' END AS ±íÃû, CASE WHEN a.colorder = 1 THEN isnull(f.value, '')
ELSE '' END AS ±í˵Ã÷, a.colorder AS ×Ö¶ÎÐòºÅ, a.name AS ×Ö¶ÎÃû, CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity')
= 1 THEN '√' ELSE '' END AS ±êʶ, CA ......