先寫個小demo,如下。相關配置檔案就不貼出來了。官網上直接可以複製
public static void main(string args) throws ioexception
1、如何載入配置檔案
使用resources類將配置檔案載入為reader。
第一步
//呼叫getresourceasreader。
第二步//進入getresourceasreader方法。使用inputstreamreader將inputstream包裝成reader
public
static reader getresourceasreader(string resource) throws ioexception else
return reader;
} 第三步
//進入getresourceasstream載入inputstream
public
static inputstream getresourceasstream(classloader loader, string resource) throws ioexception
return
in; }
第四步//選擇乙個類載入器來載入檔案,包裝成inputstream
//選擇第乙個可以用的載入器,這裡不明白為什麼要這麼做
//(直接都指定為其中乙個不就好了?有大佬看到可以解答下)
inputstream getresourceasstream(string resource, classloader classloader)
if (null != returnvalue) }}
return
null;
}
2、建立sqlsessionfactory
sqlsessionfactory sessionfactory=new sqlsessionfactorybuilder().build(reader);
第一步//建立乙個xmlconfigbuilder,再呼叫xmlconfigbuilder的parse()方法獲取乙個configuration物件
//並使用該物件去build乙個sqlsessionfactory
public sqlsessionfactory build(reader reader, string environment, properties properties) catch (exception e) finally catch (ioexception e)
}} 第二步
public
xmlconfigbuilder(reader reader, string environment, properties props)
第三步//進入xmlconfigbuilder的parse()方法
public configuration parse()
parsed = true;
//獲取根節點,進行解析
parseconfiguration(parser.evalnode("/configuration"));
return configuration;
} 第四步
//這裡就是解析所有的子節點的過程
private
void
parseconfiguration(xnode root) catch (exception e)
}
mybatis學習筆記 13 延遲載入
resultmap可以實現高階對映 使用association collection實現一對一及一對多對映 association collection具備延遲載入功能。延遲載入 先從單錶查詢 需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。需求 如果查詢訂單...
Mybatis延遲載入(懶載入)
將採用高階對映實現多表聯查時向資料庫發出的sql語句拆分成若干條單錶查詢的sql語句,當需要返回資料時才會向資料庫發出只針對當前資料的sql語句。需求 根據訂單編號,查詢訂單,並返回訂單詳情描述資訊實現延遲載入的前提條件 在settings中配置與延遲載入有關的屬性.column 查詢user的引數...
Mybatis延遲載入
現在有這麼乙個需求,要查詢所有的訂單,並且獲得該訂單的詳細資訊。如果一次性把所有需要的資料都請求到,那麼對伺服器和資料庫的開銷會很大,所以可以先載入訂單資訊,需要用到訂單詳情的時候再請求詳情資料。那麼就要用到mybatis的延遲載入 name lazyloadingenabled value tru...