日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
支持MySQL數(shù)據(jù)庫,SPL升級(jí)到3.2

此文章主要講述的是SPL升級(jí)到3.2全面支持MySQL數(shù)據(jù)庫的實(shí)際應(yīng)用與具體操作,如果你是MySQL數(shù)據(jù)庫方面的新手,對(duì)MySQL數(shù)據(jù)庫的相關(guān)實(shí)際應(yīng)用不是很了解的話,以下的文章會(huì)給你提供更全面的知識(shí)。

SPL從上次的3.1.0.5開始,經(jīng)過了一段時(shí)間,積累了一些修改并進(jìn)行了MySQL數(shù)據(jù)庫的支持,現(xiàn)在發(fā)布SPL版本為3.2.0.4,Dll下載地址:這里 。只需要在項(xiàng)目中,把原來的Dll覆蓋即可,如果還沒下載過SPL早期版本的朋友,本次SPL自上次發(fā)布的3.1.0.5以后進(jìn)行的更新有:

1、支持MS SQL SERVER中的Bit型數(shù)據(jù)類型

映射到ClassMap中的類型為boolean,如:

 
 
 

對(duì)應(yīng)的實(shí)體類類型為bool型,如:

 
 
 
  1. private bool m_IsOver; 
  2. public bool IsOver
  3. {
  4. get
  5. {
  6. return this.m_IsOver;
  7. }
  8. set
  9. {
  10. this.m_IsOver = value;
  11. }
  12. }

在查詢時(shí)可以通過Condition進(jìn)行比較判斷了:

 
 
 
  1. Codition c=....
  2. c.AddEqualTo("IsOver",false);

這會(huì)最終生成 IsOver='0'的查詢條件

2、提供了對(duì)數(shù)據(jù)源的提供者類型的判斷,這將方便區(qū)分不同的MySQL數(shù)據(jù)庫提供者手動(dòng)組裝不同的SQL語句

用Setting.Instance().GetDatabaseVendor(dbName)根據(jù)dbName數(shù)據(jù)源取得數(shù)據(jù)源提供者,然后與DatabaseVendor枚舉型比較

如Access的日期比較與Sql Server的不一致:一個(gè)采用#號(hào),一個(gè)采用'號(hào)

 
 
 
  1. if(Setting.Instance().GetDatabaseVendor(dbName)==DatabaseVendor.MsAccess)
  2. {
  3. builder.Append(" and SpecialPriceD2.FromDate<=#"+itemDate.Day.ToString()+"-"+itemDate.Month.ToString()+"-"+itemDate.Year.ToString()+"#");
  4. builder.Append(" and SpecialPriceD2.ToDate>=#"+itemDate.Day.ToString()+"-"+itemDate.Month.ToString()+"-"+itemDate.Year.ToString()+"#");
  5. }
  6. if(Setting.Instance().GetDatabaseVendor(dbName)==DatabaseVendor.MsSqlServer)
  7. {
  8. builder.Append(" and SpecialPriceD2.FromDate<='"+itemDate.Day.ToString()+"-"+itemDate.Month.ToString()+"-"+itemDate.Year.ToString()+"'");
  9. builder.Append(" and SpecialPriceD2.ToDate>='"+itemDate.Day.ToString()+"-"+itemDate.Month.ToString()+"-"+itemDate.Year.ToString()+"'");
  10. }

這個(gè)功能將為系統(tǒng)對(duì)多種MySQL數(shù)據(jù)庫的支持***的靈活性,雖然SPL本身的“實(shí)體”與“標(biāo)準(zhǔn)”都可以區(qū)分不同的數(shù)據(jù)源提供者,但在需要手寫SQL的地方,也需要根據(jù)不同的數(shù)據(jù)源提供者提供不同的語句執(zhí)行

3、修訂了對(duì)所有保留字的兼容性

目前對(duì)所有的SPL中的操作,都加了定界符,ORACLE采用“"”號(hào),MS的采用“[]”號(hào),MySql的采用“`”號(hào),所有測試都通過了

4、在Condition里添加了對(duì)Null值的查詢功能

此方式只針對(duì)AddEqualTo()和AddNotEqualTo()有效:

 
 
 
  1. c.AddEqualTo("字段名",System.DBNull.Value);
  2. c.AddNotEqualTo("字段名",System.DBNull.Value);

5、增加了對(duì)MySql數(shù)據(jù)庫的支持

SPL對(duì)MySql的訪問連接采用的是MySql提供的專用.NET connector,此驅(qū)動(dòng)應(yīng)該說是目前.NET連接MySql的***選擇,在使用SPL訪問MySql時(shí),只需要安裝一下此驅(qū)動(dòng)即可,下載與介紹請(qǐng)看

使用時(shí)只需要配置DatabaseMap時(shí)類型設(shè)為“MySql”即可,如下:

 
 
 
  1.  

只需這里配置后,SPL在具體應(yīng)用中與其他的完全一樣,測試情況:

實(shí)體測試--->通過

RetrieveCriteira、UpdateCriteria、DeleteCriteria測試--->通過

Transaction測試--->通過

自動(dòng)增長主鍵測試--->通過

TOP功能測試--->通過

6、對(duì)DateTime的Null值進(jìn)行了處理 (3.2.0.1開始支持)

如果要對(duì)DateTime類型的字段賦于Null值,只需要使用DateTime.MinValue即可:

aEntity.CreateDate=DateTime.MinValue;

在SPL內(nèi)部會(huì)判斷如果DateTime.MinValue的話,自動(dòng)保存到MySQL數(shù)據(jù)庫為System.DBNull.Value,這就解決了不能給 DateTime類型直接賦于System.DBNull.Value的問題。

7、修訂了UpdateCriteria對(duì)屬性名與字段名不一致時(shí)導(dǎo)致的錯(cuò)誤(3.2.0.2開始修訂)

原來在UpdateCriteira時(shí)沒有對(duì)屬性進(jìn)行轉(zhuǎn)化為字段名,導(dǎo)致在屬性名與字段名不一致的情況下會(huì)找不到字段。

(非常感謝iamsunrise提供的建議,請(qǐng)下載了SPL3.2的朋友重新下載一下)
(感謝子揚(yáng)報(bào)出的BUG)

8、本3.2.0.4已經(jīng)修復(fù)了DataBaseType的MySql類型了。


本文名稱:支持MySQL數(shù)據(jù)庫,SPL升級(jí)到3.2
網(wǎng)站地址:http://www.5511xx.com/article/dpgopco.html