<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [NewLife.XCode]功能設(shè)置

      NewLife.XCode是一個有10多年歷史的開源數(shù)據(jù)中間件,由新生命團隊(2002~2019)開發(fā)完成并維護至今,以下簡稱XCode。

      整個系列教程會大量結(jié)合示例代碼和運行日志來進行深入分析,蘊含多年開發(fā)經(jīng)驗于其中,代表作有百億級大數(shù)據(jù)實時計算項目。

      開源地址:https://github.com/NewLifeX/X (求star, 652+)

       

      連接字符串

      XCode支持SqlServer、SQLite、MySql、Oracle、PostgreSQL、Access、SqlCe等多種數(shù)據(jù)庫,常用連接字符串模板如下:

      <add name="SQLite" connectionString="Data Source=test.db;" providerName="Sqlite" />
      <add name="MySql" connectionString="Server=.;Port=3306;Database=mysql;Uid=root;Pwd=;" providerName="MySql.Data.MySqlClient" />
      <add name="MSSQL" connectionString="Server=.;User ID=sa;Password=sa;Database=Test;datapath=~\App_Data" providerName="System.Data.SqlClient" />
      <add name="Oracle" connectionString="Data Source=Tcp://127.0.0.1/ORC;User ID=sys;Password=admin;Owner=mis" providerName="System.Data.OracleClient" />
      <add name="PostgreSQL" connectionString="Server=.;Database=master;Uid=root;Pwd=root;" providerName="PostgreSQL.Data.PostgreSQLClient" />
      <add name="MSSQL" connectionString="Server=.;Integrated Security=SSPI;Database=Test" providerName="System.Data.SqlClient" />
      <add name="Oracle" connectionString="Data Source=orc;User ID=sys;Password=admin;" providerName="System.Data.OracleClient" />
      <!--OLE DB Services=-1表示打開連接池-->
      <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=~\App_Data\Test.mdb;Persist Security Info=False;OLE DB Services=-1" providerName="Access"/>
      <add name="SqlCe" connectionString="Data Source=test.sdf;" providerName="SqlCe" />

      連接字符串最常見的地方就是app.config/web.config中的connectionStrings段。

      這里特別注意name,正是數(shù)據(jù)模型中講到的連接名ConnName!這個name一般取業(yè)務(wù)模塊名字,上面的名字僅僅是為了表示這是哪一種數(shù)據(jù)庫,實際項目中有用戶自己起名字。

      每個數(shù)據(jù)模型生成的實體類都有一個ConnName設(shè)置,表明該實體類需要使用哪一個連接,后面是連接字符串和數(shù)據(jù)庫類型。

      注意?。?!劃重點?。?!XCode實體類支持任意切換數(shù)據(jù)庫,完全由連接字符串和providerName決定所要使用的數(shù)據(jù)庫!

      在這里,強烈推薦開發(fā)環(huán)境使用SQLite,生產(chǎn)環(huán)境再更換SqlServer/MySql/Oracle的連接字符串。

       

      驗證連接的辦法也很簡單,var dal=DAL.Create(ConnName)即可!

      DAL是XCode數(shù)據(jù)層總?cè)肟?,針對?shù)據(jù)庫的任何操作都通過該類橋接。

      其中DAL.ConnStrs管理著所有的連接名以及對應(yīng)的連接字符串,DAL.Create(connName)時從中查找并針對連接名創(chuàng)建單一實例(每個連接名一個DAL實例)。

      也可以通過DAL.AddConnStr("school", "Data Source=school.db;", null, "MySql")來動態(tài)添加連接名以及連接字符串,最后一個參數(shù)寫數(shù)據(jù)庫名。

       

      連接字符串的第三種使用方式,也是最高級的一種,支持DAL.OnResolve委托,當(dāng)配置文件或動態(tài)配置中找不到相應(yīng)連接名時,執(zhí)行該委托。

      為了集成配置中心(例如新生命團隊的開源項目星塵Stardust),一般在應(yīng)用初始化時注冊DAL.OnResolve到外部配置中心。

       

      最后,如果沒有任何地方設(shè)置某個連接名,并且配置中心也沒有找到,XCode將會自動創(chuàng)建一個SQLite連接字符串。

      因此,XCode實體類永遠不會提示找不到連接字符串,而是會自動為了創(chuàng)建SQLite連接,并且建庫建表。

       

      配置文件

      標(biāo)準(zhǔn)配置文件位于Config/XCode.config,首次使用時自動創(chuàng)建,也可以通過XCode.Setting.Current來讀寫

      <?xml version="1.0" encoding="utf-8"?>
      <!--XCode設(shè)置-->
      <Setting>
        <!--調(diào)試-->
        <Debug>true</Debug>
        <!--輸出SQL。是否輸出SQL語句,默認啟用-->
        <ShowSQL>true</ShowSQL>
        <!--SQL目錄。設(shè)置SQL輸出的單獨目錄,默認為空,SQL輸出到當(dāng)前日志中。生產(chǎn)環(huán)境建議輸出到站點外單獨的SqlLog目錄-->
        <SQLPath></SQLPath>
        <!--SQL執(zhí)行時間。跟蹤SQL執(zhí)行時間,大于該閥值將輸出日志,默認1000毫秒-->
        <TraceSQLTime>1000</TraceSQLTime>
        <!--連接映射。連接名映射#,表名映射@,把實體類中的Test2和Test3連接名映射到Test去-->
        <ConnMaps></ConnMaps>
        <!--參數(shù)化添刪改查。默認關(guān)閉-->
        <UseParameter>false</UseParameter>
        <!--SQLite默認目錄。沒有設(shè)置連接字符串的連接默認創(chuàng)建SQLite連接,數(shù)據(jù)庫放在該目錄-->
        <SQLiteDbPath>..\Data</SQLiteDbPath>
        <!--備份目錄。備份數(shù)據(jù)庫時存放的目錄-->
        <BackupPath>..\Backup</BackupPath>
        <!--命令超時。查詢執(zhí)行超時時間,默認0秒不限制-->
        <CommandTimeout>0</CommandTimeout>
        <!--數(shù)據(jù)層緩存。默認0秒-->
        <DataCacheExpire>0</DataCacheExpire>
        <!--實體緩存過期。整表緩存實體列表,默認10秒-->
        <EntityCacheExpire>10</EntityCacheExpire>
        <!--單對象緩存過期。按主鍵緩存實體,默認10秒-->
        <SingleCacheExpire>10</SingleCacheExpire>
        <!--擴展屬性過期。擴展屬性Extends緩存,默認10秒-->
        <ExtendExpire>10</ExtendExpire>
        <!--反向工程。Off 關(guān)閉;ReadOnly 只讀不執(zhí)行;On 打開,僅新建;Full 完全,修改刪除-->
        <Migration>On</Migration>
      </Setting>

      各配置項解釋:

      • Debug。顧名思義,這是XCode的調(diào)試開關(guān),打開后,日志中會多寫一些東西,告訴你它正在做什么事情,分析問題的時候可以打開,如果嫌日志太少也可以打開,咱們?nèi)罩拘阅芎芎貌挥脫?dān)心;
      • ShowSQL。顯示每一個執(zhí)行的SQL語句,可能是配置中最常用的一個配置項,可以在日志中明明白白看到應(yīng)用在執(zhí)行啥數(shù)據(jù)庫操作,每分鐘執(zhí)行超過30次的中大型應(yīng)用務(wù)必關(guān)閉,否則光日志就能寫爆磁盤;
      • SQLPath。SQL日志默認跟普通日志放在一起,設(shè)置該相對路徑后,可以獨立存放;
      • TraceSQLTime。慢日志跟蹤時間,默認1000ms,執(zhí)行時間超過此值的SQL將輸出在日志中(常規(guī)日志,非SQL日志),對于中大型系統(tǒng)分析問題非常有用;
      • UseParameter。使用參數(shù)名查詢,默認false,設(shè)置為true時執(zhí)行的添刪改查將使用參數(shù)化操作。該參數(shù)也可以寫在連接字符串中;
      • SQLiteDbPath。沒有給連接名設(shè)置任何連接字符串時,默認生成SQLite數(shù)據(jù)庫,該設(shè)置是存放這些默認SQLite數(shù)據(jù)庫的目錄;
      • CommandTimeout。命令執(zhí)行超時時間,默認0不限制,可根據(jù)應(yīng)用需要設(shè)為15秒或30秒;
      • DataCacheExpire。數(shù)據(jù)層緩存(一級緩存)有效期,以select語句為key緩存結(jié)果數(shù)據(jù)集,任何添刪改操作或過期時清空緩存。默認0秒,web前臺網(wǎng)站建議設(shè)為10秒;
      • EntityCacheExpire。實體緩存(二級緩存)有效期,上一章有提到Meta.Cache對應(yīng)實體緩存,默認10秒,過期后繼續(xù)返回舊數(shù)據(jù)并異步更新,添刪改操作清空;
      • SingleCacheExpire。對象緩存(三級緩存)有效期,上一章有提到Meta.SingleCache,默認10秒,過期后繼續(xù)返回舊數(shù)據(jù)并異步更新,添刪改操作清空;
      • ExtendExpire。擴展屬性有效期,上一章擴展屬性部分有提到Extends帶有的緩存效果,默認10秒;
      • Migration。反向工程,自動建庫建表加字段改字段等,就靠它設(shè)置。Off 關(guān)閉;ReadOnly 只讀不執(zhí)行;On 打開,僅新建;Full 完全,修改刪除。默認On僅新建,經(jīng)驗表明最合理;

       

      連接字符串高級設(shè)置

      上面的設(shè)置對整個應(yīng)用全局有效,而需要針對具體某個連接進行控制,可以把設(shè)置項寫在連接字符串中,該功能最常用的場景就是配置中心。

      高級設(shè)置如下:

      • ShowSQL。用法同上,針對性打開SQL日志
      • UseParameter。用法同上,針對性打開參數(shù)化
      • Migration。用法同上,可針對連接控制是否打開反向工程,某些只讀連接可以設(shè)置Off
      • DataCache。用法同上DataCacheExpire,針對性設(shè)置當(dāng)前連接
      • Readonly。該連接是否只讀,只讀連接在數(shù)據(jù)層禁止執(zhí)行Insert/Update/Delete
      • TablePrefix。該連接下所有表名增加前綴,適用于多個系統(tǒng)共用一個庫,避免不同系統(tǒng)的表名重名
      • Owner。擁有者,數(shù)據(jù)表所在Schema和登錄用戶不一致時,需要設(shè)置數(shù)據(jù)表所在Schema(Oracle中所屬用戶)
      • Provider。提供者,數(shù)據(jù)庫類型,特用于配置中心,便于在連接字符串中指定數(shù)據(jù)庫類型

      SQLite數(shù)據(jù)庫的連接字符串有特殊支持,外部沒有設(shè)置時,自動配置WAL等以極大提高性能。(提升效果可參考飛仙 http://feixian.newlifex.com )

      此外,MySql和Oracle的數(shù)據(jù)源還支持 Data Source=tcp://10.0.0.3:1234/racdb 的簡寫用法。

      XCode配置Debug為true時,日志會輸出調(diào)整好的最終連接字符串,可用于學(xué)習(xí)。

       

      系列教程

      NewLife.XCode教程系列[2019版]

      1. 增刪改查入門??焖僬宫F(xiàn)用法,代碼配置連接字符串
      2. 數(shù)據(jù)模型文件。建立表格字段和索引,名字以及數(shù)據(jù)類型規(guī)范,推薦字段(時間,用戶,IP)
      3. 實體類詳解。數(shù)據(jù)類業(yè)務(wù)類,泛型基類,接口
      4. 功能設(shè)置。連接字符串,調(diào)試開關(guān),SQL日志,慢日志,參數(shù)化,執(zhí)行超時。代碼與配置文件設(shè)置,連接字符串局部設(shè)置
      5. 反向工程。自動建立數(shù)據(jù)庫數(shù)據(jù)表
      6. 數(shù)據(jù)初始化。InitData寫入初始化數(shù)據(jù)
      7. 高級增刪改。重載攔截,自增字段,Valid驗證,實體模型(時間,用戶,IP)
      8. 臟數(shù)據(jù)。如何產(chǎn)生,怎么利用
      9. 增量累加。高并發(fā)統(tǒng)計
      10. 事務(wù)處理。單表和多表,不同連接,多種寫法
      11. 擴展屬性。多表關(guān)聯(lián),Map映射
      12. 高級查詢。復(fù)雜條件,分頁,自定義擴展FieldItem,查總記錄數(shù),查匯總統(tǒng)計
      13. 數(shù)據(jù)層緩存。Sql緩存,更新機制
      14. 實體緩存。全表整理緩存,更新機制
      15. 對象緩存。字典緩存,適用用戶等數(shù)據(jù)較多場景。
      16. 百億級性能。字段精煉,索引完備,合理查詢,充分利用緩存
      17. 實體工廠。元數(shù)據(jù),通用處理程序
      18. 角色權(quán)限。Membership
      19. 導(dǎo)入導(dǎo)出。Xml,Json,二進制,網(wǎng)絡(luò)或文件
      20. 分表分庫。常見拆分邏輯
      21. 高級統(tǒng)計。聚合統(tǒng)計,分組統(tǒng)計
      22. 批量寫入。批量插入,批量Upsert,異步保存
      23. 實體隊列。寫入級緩存,提升性能。
      24. 備份同步。備份數(shù)據(jù),恢復(fù)數(shù)據(jù),同步數(shù)據(jù)
      25. 數(shù)據(jù)服務(wù)。提供RPC接口服務(wù),遠程執(zhí)行查詢,例如SQLite網(wǎng)絡(luò)版
      26. 大數(shù)據(jù)分析。ETL抽取,調(diào)度計算處理,結(jié)果持久化

       

      posted @ 2019-03-13 00:05  大石頭  閱讀(3697)  評論(13)    收藏  舉報
      主站蜘蛛池模板: 日韩精品久久一区二区三| 青青草无码免费一二三区| 蜜桃av无码免费看永久| 欧美极品色午夜在线视频| 免费无码高H视频在线观看| 99热精国产这里只有精品| 亚洲AV成人片不卡无码| 中文字幕制服国产精品| 精品亚洲女同一区二区| 久久国产自拍一区二区三区| 亚洲高清最新AV网站| 亚洲av日韩在线资源| 久久国产精品第一区二区| 亚洲天堂在线观看完整版| 昌黎县| 亚洲天堂成人一区二区三区| 国产精品中文字幕一区| 亚洲国产精品ⅴa在线观看| 国产精品国三级国产专区| 玩弄漂亮少妇高潮白浆| 少妇人妻真实偷人精品| 国产精品偷乱一区二区三区| 污污污污污污WWW网站免费| 亚洲男女羞羞无遮挡久久丫 | 日韩精品 在线 国产 丝袜| 亚洲一区国色天香| 激情人妻自拍中文夜夜嗨| 国产午夜精品久久精品电影 | 国产精品一区二区三区色| 日韩有码中文字幕av| 欧美交a欧美精品喷水| 开心激情站开心激情网六月婷婷| 国产精品13页| 国产v综合v亚洲欧美大天堂| 两性午夜刺激性视频| 国产一区二区三区不卡自拍| 亚洲国产精品成人无码区| 国产女人喷潮视频免费| 九九热视频在线观看精品| 2021av在线| 国产女人看国产在线女人|