MyBatis介紹
MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code罪塔,并且改名為MyBatis,實質(zhì)上Mybatis對ibatis進(jìn)行一些改進(jìn)陌宿。
MyBatis是一個優(yōu)秀的持久層框架岩梳,它對jdbc的操作數(shù)據(jù)庫的過程進(jìn)行封裝锰悼,使開發(fā)者只需要關(guān)注 SQL 本身敌土,而不需要花費精力去處理例如注冊驅(qū)動、創(chuàng)建connection哥桥、創(chuàng)建statement碍沐、手動設(shè)置參數(shù)狸捅、結(jié)果集檢索等jdbc繁雜的過程代碼。
Mybatis通過xml或注解的方式將要執(zhí)行的各種statement(statement抢韭、preparedStatemnt薪贫、CallableStatement)配置起來,并通過java對象和statement中的sql進(jìn)行映射生成最終執(zhí)行的sql語句刻恭,最后由mybatis框架執(zhí)行sql并將結(jié)果映射成java對象并返回瞧省。
Mybatis架構(gòu)
mybatis配置
SqlMapConfig.xml,此文件作為mybatis的全局配置文件鳍贾,配置了mybatis的運行環(huán)境等信息鞍匾。
mapper.xml文件即sql映射文件,文件中配置了操作數(shù)據(jù)庫的sql語句骑科。此文件需要在SqlMapConfig.xml中加載橡淑。通過mybatis環(huán)境等配置信息構(gòu)造SqlSessionFactory即會話工廠
由會話工廠創(chuàng)建sqlSession即會話,操作數(shù)據(jù)庫需要通過sqlSession進(jìn)行咆爽。
mybatis底層自定義了Executor執(zhí)行器接口操作數(shù)據(jù)庫梁棠,Executor接口有兩個實現(xiàn),一個是基本執(zhí)行器斗埂、一個是緩存執(zhí)行器符糊。
Mapped Statement也是mybatis一個底層封裝對象,它包裝了mybatis配置信息及sql映射信息等呛凶。mapper.xml文件中一個sql對應(yīng)一個Mapped Statement對象男娄,sql的id即是Mapped statement的id。
Mapped Statement對sql執(zhí)行輸入?yún)?shù)進(jìn)行定義漾稀,包括HashMap模闲、基本類型、pojo崭捍,Executor通過Mapped Statement在執(zhí)行sql前將輸入的java對象映射至sql中尸折,輸入?yún)?shù)映射就是jdbc編程中對preparedStatement設(shè)置參數(shù)。
Mapped Statement對sql執(zhí)行輸出結(jié)果進(jìn)行定義殷蛇,包括HashMap翁授、基本類型拣播、pojo,Executor通過Mapped Statement在執(zhí)行sql后將輸出結(jié)果映射至java對象中收擦,輸出結(jié)果映射過程相當(dāng)于jdbc編程中對結(jié)果的解析處理過程。
- 郵箱:ithelei@sina.cn
- Good Luck!