mybatis 源碼學習(一)配置文件初始化

mybatis是項目中經常使用到的持久層框架,今天咱們學習下mybatis,隨便找一個例子能夠看到經過讀取配置文件創建SqlSessionFactory,而後在build拿到關鍵的sqlsession,這是我從網上隨便找了下例子,sql

關鍵的方法在於new SqlSessionFactoryBuilder().build(reader);session

能夠看到parser.parse() 返回的結果是Configuration ,而mybatis全部的配置文件初始化在這個類裏面,這個是很關鍵的類。mybatis

這裏能夠看到讀取configuration節點,咱們知道configuration節點裏面有數據源的配置以及xml文件的所在包或者路徑。app

這裏是初始化mappers文件框架

拿到resource路徑進行解析,

從到這裏是否是很熟悉,解析xml文件

讀取出來insert 、select 、 update 、delete節點。學習

看到這個應該知道了,

Map<String, NodeHandler> map = new HashMap<String, NodeHandler>(); map.put("trim", new TrimHandler()); map.put("where", new WhereHandler()); map.put("set", new SetHandler()); map.put("foreach", new ForEachHandler()); map.put("if", new IfHandler()); map.put("choose", new ChooseHandler()); map.put("when", new IfHandler()); map.put("otherwise", new OtherwiseHandler()); map.put("bind", new BindHandler());ui

不一樣的標籤實現不一樣的類來組裝 sql.

最後把初始化的配置數據放到MappedStatement中。
複製代碼

最後的重頭戲來了。spa

看把成功賦值的MappedStatement再次放到configuration中。
相關文章
相關標籤/搜索