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µÄÎļþ£¬Ë«»÷Õâ¸öÎļþ¾Í»á½øÈëÉè¼ÆÊÓͼ£¬ÈçÏÂͼËùʾ£º
ÔÚ·þÎñÆ÷×ÊÔ´¹ÜÀíÖÐÕÒµ½ÏàÓ¦µÄÊý¾Ý
Ïà¹ØÎĵµ£º
ÍâÁª½Ó:ÍâÁª½Ó¿ÉÒÔÊÇ×óÏòÍâÁª½Ó¡¢ÓÒÏòÍâÁª½Ó»òÍêÕûÍⲿÁª½Ó¡£
ÔÚ from ×Ó¾äÖÐÖ¸¶¨ÍâÁª½Óʱ£¬¿ÉÒÔÓÉÏÂÁм¸×鹨¼ü×ÖÖеÄÒ»×éÖ¸¶¨£º
LEFT JOIN »ò LEFT OUTER JOIN;
×óÏòÍâÁª½ÓµÄ½á¹û¼¯°üÀ ......
Ö»ÐèÒªÔÚÅäÖÃÎļþÀï hibernate.show_sql=true
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
......
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
......
ÔÚsqlÖд´½¨Óû§×Ô¶¨Ò寴Òôº¯Êý£º
create function f_GetPy(@Str nvarchar(400))
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert @t select 'ß¹','A' union all select '°Ë','B'
union all select 'àê ......
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE DATABASE data ......