1 什么是MyBatis
Mybatis是一個半ORM(物件關系映射)框架,它內部封裝了JDBC,開發時只需要關注SQL陳述句本身,不需要花費精力去處理加載驅動、創建連接、創建statement等繁雜的程序,程式員直接撰寫原生態sql,可以嚴格控制sql執行性能,靈活度高, 2 MyBatis優缺點 優點:與各種資料庫兼容,基于SQL陳述句編程,與Spring集成,提供映射標簽 缺點:SQL陳述句撰寫作業量大,資料庫移植性差, 3 #{}和${}的區別是什么? #{}防止SQL注入,提供系統安全,會將sql中的#{}替換為?號,呼叫PreparedStatement的set方法來賦值, ${},就是把${}替換成變數的值, 4 Mybatis的一級、二級快取: (1)一級快取: 基于 PerpetualCache 的 HashMap 本地快取,其存盤作用域為 Session,當 Session flush 或 close 之后,該 Session 中的所有 Cache 就將清空,默認打開一級快取, (2)二級快取與一級快取其機制相同,默認也是采用 PerpetualCache,HashMap 存盤,不同在于其存盤作用域為 Mapper(Namespace),并且可自定義存盤源,如 Ehcache,默認不打開二級快取,要開啟 二級快取,使用二級快取屬性類需要實作Serializable序列化介面(可用來保存物件的狀態),可在它的映射檔案中配置 ; // 注意這里 executortype.batch sqlsession sqlsession = sqlsessionfactory.opensession(executortype.batch); try { namemapper mapper = sqlsession.getmapper(namemapper.class); for (string name : names) { mapper.insertname(name); } sqlsession.commit(); }catch(Exception e){ e.printStackTrace(); sqlSession.rollback(); throw e; } finally { sqlsession.close(); } (3)對于快取資料更新機制,當某一個作用域(一級快取 Session/二級快取Namespaces)的進行了C/U/D操作后,默認該作用域下所有 select 中的快取將被 clear 掉并重新更新,如果開啟了二級快取,則只根 據配置判斷是否重繪,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548558.html
標籤:Java
