ADO.NETÓëORMµÄ±È½Ï(3):Linq to SQLʵÏÖCRUD
˵Ã÷£º¸öÈ˸оõÔÚJavaÁìÓò´óÐÍ¿ª·¢¶¼Àë²»ÁËORMµÄÉíÓ°£¬ËùνµÄSSH¾ÍÊÇSpring+Struts+Hibernate£¬³ýÁËÔÚѧϰ»ù´¡ÖªÊ¶µÄʱºò±»¸æÖª¿ÉÒÔʹÓÃJDBC²Ù×÷Êý¾Ý¿âÖ®Í⣬´óÁ¿µÄÊé¼®Öж¼Êǽ²ÊöʹÓÃHibernateÕâ¸öORM¹¤¾ßÀ´²Ù×÷Êý¾Ý¡£ÔÚ.NETÖвÙ×÷Êý¾Ý¿âµÄ·½Ê½ÓжàÖÖ£¬³ýÁË×îÖ±½ÓµÄ·½Ê½¾ÍÊÇʹÓÃADO.NETÖ®Í⣬»¹¿ÉÒÔʹÓÃNHibernateÕâ¸öHibernateÔÚ.NETÖеÄʵÏÖORM£¬Èç¹ûÄã¶ÔµÚÈý·½µÄORM³Ö»³ÒÉ̬¶È£¬Ä㻹¿ÉÒÔʹÓÃÀ´×Ô΢ÈíµÄʵÏÖ¡¢¸ùÕýÃçºìµÄLinq»òÕßEntityFramework¡£
´ó²¿·Ö´ÓÔçÆÚ¾Í¿ªÊ¼Ê¹ÓÃ.NET¿ª·¢µÄ³ÌÐòÔ±¿ÉÄܶÔADO.NETÓÐÖÖÃÔÁµ£¬Ê¹ÓÃADO.NET¿ÉÒÔ³ä·Ö½«ÎÒÃÇÔçÆÚµÄSQL֪ʶ·¢»ÓµÃÁÜÀ쾡Ö£¬²¢ÇÒ³öÓÚ¶ÔÐÔÄܵĿ¼ÂÇ£¬ÓÐЩÈ˶Ô.NETÖеÄORM»¹±£³ÖÒ»ÖÖ¹ÛÍû̬¶È£¬°üÀ¨ÎÒ×Ô¼ºÒ²ÊÇÕâÖÖ̬¶È¡£²»¹ý¼´Ê¹ÔÚʵ¼Ê¿ª·¢Öв»Ó㬲¢²»´ú±íÎÒÃDz»ÄÜÈ¥Á˽âºÍ±È½ÏÕâЩ¼¼Êõ£¬ÈκÎÊÂÎïµÄ³öÏÖºÍÏûÍö×ÜÓÐÆäÔÒòµÄ£¬ÎÒÃÇ¿ÉÒÔÁ˽âËüÃǵÄÓŵãºÍ³¤´¦¡£ËùÒÔ±¾È˳é³öÁ˼¸¸öÖÜÄ©µÄʱ¼ä·Ö±ðÓÃADO.NET¡¢NHibernate¡¢LinqºÍEntityFrameworkÀ´ÊµÏÖ¶ÔÊý¾Ý¿âµ¥±íÊý¾ÝµÄ´´½¨¡¢¶ÁÈ¡¡¢¸üкÍɾ³ý²Ù×÷£¬Ò²¾ÍÊÇËùνµÄCRUD£¨C:Create/R:Read/U:Update/D:Delete£©¡£
ͨ¹ýʵÏÖÏàͬ¹¦ÄܵıȽϣ¬´ó¼Ò×Ô¼ºÅжÏÄÇÖÖ·½Ê½¸üÊʺÏ×Ô¼º¡£ÐèҪ˵Ã÷µÄÊÇ£¬Èç¹ûÔÚVS2008ÖÐʹÓÃEntityFramework¾ÍÐèÒª°²×°VS2008SP1¡£
ÓïÑÔ¼¯³É²éѯ (LINQ) ÊÇ Visual Studio 2008 ÖеÄÒ»×鹦ÄÜ£¬¿ÉΪ C# ºÍ Visual Basic ÓïÑÔÓï·¨Ìṩǿ´óµÄ²éѯ¹¦ÄÜ¡£LINQ ÒýÈëÁ˱ê×¼µÄ¡¢Ò×ÓÚѧϰµÄ²éѯºÍ¸üÐÂÊý¾Ýģʽ£¬¿ÉÒÔ¶ÔÆä¼¼Êõ½øÐÐÀ©Õ¹ÒÔÖ§³Ö¼¸ºõÈκÎÀàÐ͵ÄÊý¾Ý´æ´¢¡£Visual Studio 2008 °üº¬ LINQ Ìṩ³ÌÐòµÄ³ÌÐò¼¯£¬ÕâЩ³ÌÐò¼¯Ö§³Ö½« LINQ Óë .NET Framework ¼¯ºÏ¡¢SQL Server Êý¾Ý¿â¡¢ADO.NET Êý¾Ý¼¯ºÍ XML ÎĵµÒ»ÆðʹÓá£
ÔÚ±¾Æª½²ÊöÀûÓÃLinqʵÏÖ¶ÔÊý¾Ý¿âµÄCRUD¹¦ÄÜ£¬Ò²¾ÍÊÇLinq to SQL£¬ÐèҪ˵Ã÷µÄÊÇLinq to SQLÖ»Ö§³ÖSQL ServerÊý¾Ý¿â£¬Linq to SQLÖ»ÊÇLinqµÄÒ»²¿·Ö¹¦ÄÜ¡£
ÓÃLinq to SQLÀ´²Ù×÷Êý¾Ý¿âȷʵ±ÈʹÓÃNHibernateÔÚ²Ù×÷ÉÏÒª·½±ãµÃ¶à£¬Í¨¹ýÏÂÃæµÄ²Ù×÷¶ÁÕßÒ²»áÌå»áµÃµ½£¬±Ï¾¹Õâ¸öÊÇ΢Èí¹Ù·½µÄ¶«¶«£¬Î¢Î¢Ö§³ÖµÄÁ¦¶È×ÔȻҪ´óЩ¡£
Ò»¡¢×¼±¸
Ê×ÏÈ£¬ÏòÏîÄ¿ÖÐÌí¼ÓLinq To SQLµÄÀ࣬ÈçÏÂͼËùʾ£º
ÔÚÃû³ÆÒ»À¸ÖÐÌîд½ÏÓѺõÄÃû×ÖÖ®ºó£¬È»ºóÏîÄ¿ÖоͻáÔö¼ÓÒ»¸öºó׺ΪdbmlµÄÎļþ£¬Ë«»÷Õâ¸öÎļþ¾Í»á½øÈëÉè¼ÆÊÓͼ£¬ÈçÏÂͼËùʾ£º
ÔÚ·þÎñÆ÷×ÊÔ´¹ÜÀíÖÐÕÒµ½ÏàÓ¦µÄÊý¾Ý
Ïà¹ØÎĵµ£º
ʵÏÖСÊý¾ÝÁ¿ºÍº£Á¿Êý¾ÝµÄͨÓ÷ÖÒ³ÏÔʾ´æ´¢¹ý³Ì
¡¡¡¡½¨Á¢Ò»¸ö Web Ó¦Ó㬷ÖÒ³ä¯ÀÀ¹¦Äܱز»¿ÉÉÙ¡£Õâ¸öÎÊÌâÊÇÊý¾Ý¿â´¦ÀíÖÐÊ®·Ö³£¼ûµÄÎÊÌâ¡£¾µäµÄÊý¾Ý·ÖÒ³·½·¨ÊÇ:ADO ¼Í¼¼¯·ÖÒ³·¨£¬Ò²¾ÍÊÇÀûÓÃADO×Ô´øµÄ·ÖÒ³¹¦ÄÜ£¨ÀûÓÃÓα꣩À´ÊµÏÖ·ÖÒ³¡£µ«ÕâÖÖ·ÖÒ³·½·¨½öÊÊÓÃÓÚ½ÏСÊý¾ÝÁ¿µÄÇéÐΣ¬ÒòΪÓα걾ÉíÓÐȱµã£ºÓαêÊÇ´æ·ÅÔÚÄÚ´æÖУ¬º ......
¶¨Ò壺
create table ±íÃû£¨ÁÐÃû1 ÀàÐÍ [not null] [,ÁÐÃû2 ÀàÐÍ] [not null]£¬···£© [ÆäËû²ÎÊý]
Ð޸ģº
alter table ±íÃû add ÁÐÃû ÀàÐÍ
alter table ±íÃû rename column ÔÁÐÃû to ÐÂÁÐÃû
alter table ±íÃû alter column ÁÐÃû ÀàÐÍ [£¨¿í¶È£© [£¬Ð¡Êýλ]]
alter table ±íÃû drop column ÁÐÃû
......
This has some predictable results that we can use for building queries. The root is always of the form (left = 1, right = 2 * (SELECT COUNT(*) from TreeTable)); leaf nodes always have (left + 1 = right); the BETWEEN predicate defines the subtrees; and so on. Here are some common queries that you can ......
½ñÌì¿ÉÒÔ»»»»ÄÔ×ÓÁË£¬¶ªµôeclipse£¬ÍæÍæsqlÁË£¬ËäȻֻÊÇÔÚÃüÁîÐд°¿Ú
ÏÈ˵һϽñÌìÎÒÓöµ½µÄÎÊÌâ°É£¬¿ªÊ¼°´ÕÕÀÏʦµÄ²¿Êð£¬×öµÄ¶¼ºÜ˳Àû£¬µ«Êǵ±½¨Á¢ºÃÊý¾Ý¿âÖ®ºó£¬½¨Á¢±í½á¹¹µÄʱºò¾Í³ö´íÁË£¬ÔÒòÊÇÔÚÅäÖÃmysqlµÄʱºò£¬È¨ÏÞÅäÖôíÁË£¬ËùÒÔ˵ǧÀïÖ®µÌ»ÙÓÚÒÏѨ£¬º¦µÄÎÒÕûÁËÒ»¸öÖÐÎ磬ÕâʱÌáʾµÄ´íÎóÊÇERROR 1005: Can't creat ......
{
SqlConnection cnn = new SqlConnection
("context connection=true");
cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "select * from customers";
SqlDataReader reader = cmd.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
cnn.Close();
}
......