標籤:
sqlmap.config檔案是整個IBatis架構的核心檔案,從他的命名上就可以看得出來
當我們調用iBatisNet架構去訪問資料庫的時候,它會自動去項目的根目錄去找sqlmap.config檔案,所以這個檔案的路徑要放在和web.config相同的目錄下,而且檔案名稱不能修改,如果該檔案不在項目的根目錄或者檔案名稱不對,那麼你在調用的時候需要自己去解析這個檔案。
這個檔案有很多的配置節點,在IBatis架構啟動的時候首先要解析這個檔案中的每一個節點,要玩轉整個架構就得從這些配置節點開始,接下來一一介紹每個節點的用途
1 alias節點 --配置整個架構可以使用的別名
範例:
<alias>
<typeAlias alias="Student" type="IBNetModel.Student"/>
</alias>
這樣的配置,你就可以在整個設定檔中使用別名Student來表示IBNetModel.Student這個對象了
2 properties節點 --用來引入額外的資料檔案
範例:<properties resource="properties.config"/>
這樣配置,IBatis架構會解析properties.config這個設定檔,然後用${name}的方式來引用設定檔中的資料。一般吧資料庫連接字串,資料庫驅動寫入這個檔案,然後引用,後面會講到。
3 settings節點 --用來設定整個IBatis架構
範例:
<settings>
<setting useStatementNamespaces="false"/>
<setting cacheModelsEnabled="false"/>
<setting validateSqlMap="false"/>
</settings>
1)<setting useStatementNamespaces="false"/>
useStatementNamespaces屬性來設定在調用ibatis的sql語句時候是否要使用完全限定名稱。
2)<setting cacheModelsEnabled="false"/>
cacheModelsEnabled屬性來設定全域緩衝開關,後面會講到
3)<setting validateSqlMap="false"/>
這個配置不知道啥意思??文檔上描述是否啟用SqlMapConfig.xsd來驗證映射XML檔案,設定成true or false有何區別?
4 providers節點 --用來設定資料庫驅動檔案所在路徑
範例:
<providers resource="providers.config"/>
ibatis架構會解析當前路徑下的providers.config檔案裡面的內容作為資料庫驅動,Ibatis.DataMapper.1.6.2.bin這個檔案夾裡面有樣本檔案,當該檔案的名字是providers.config,並且路徑跟sqlmap.config相同的時候該配置節點可以省略。
5 database節點 --用來定義整個ibatis架構使用的資料庫
範例:
<database>
<provider name="sqlServer4.0"/>
<dataSource name="Home" connectionString="Data Source=127.0.0.1;Initial Catalog=Db2;User ID=sa;Password=123"/>
</database>
其中name=sqlServer4.0是引用了 providers.config檔案中的名稱為sqlServer4.0的驅動。
dataSource節點name可以隨意起,connectionString是資料庫連接字串(後面會將該配置放到properties.config中)
6 sqlMaps節點 --列舉所有資料對應檔案,也就是存放sql語句的檔案
範例:
<sqlMaps>
<sqlMap resource="../IBNetModel/Maps/Student.xml"/>
<sqlMap resource="../IBNetModel/Maps/Course.xml"/>
</sqlMaps>
其中Student.xml,Course.xml兩個資料對應檔案在IBNetModel項目的Maps檔案夾下,所以都要指定路徑,這樣程式才知道對應檔的路徑(後面會吧路徑存放到properties.config中)
根據我的經驗這些配置節點之間是有順序的,順序不對會報錯
最後貼一下整體sqlmap.config檔案的配置樣本
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<properties resource="properties.config"/>
<settings>
<setting useStatementNamespaces="false"/>
<setting cacheModelsEnabled="false"/>
<setting validateSqlMap="false"/>
</settings>
<database>
<provider name="sqlServer4.0"/>
<dataSource name="Home" connectionString="Data Source=127.0.0.1;Initial Catalog=Db2;User ID=sa;Password=123"/>
</database>
<sqlMaps>
<sqlMap resource="../IBNetModel/Maps/Student.xml"/>
<sqlMap resource="../IBNetModel/Maps/Course.xml"/>
</sqlMaps>
</sqlMapConfig>
iBatis.Net系列(三)-sqlmap.config