詳談Mybatis和Hibernate 的區別

2021-10-06 18:48:04 字數 454 閱讀 5028

mybatis是乙個不完全的orm(物件關係對映)框架,因為它需要程式設計師自己編寫sql語句,而hibernate是乙個完全的orm框架。

mybatis學習門檻低,簡單易學,而hibernate較為複雜,不易精通。

mybatis可以直接編寫原生態的sql,可以嚴格控制sql執行效能,進行更細緻的sql優化,靈活度高,非常適合對關係型資料模型不高的軟體開發,例如網際網路軟體,企業運營類軟體,而hibernate不能編寫sql語句,靈活度不高,但對於關係模型要求高的軟體,可以節省很多**的開發,提高開發效率。

mybatis本身的快取機制不佳,而hibernate有更好的一級快取和二級快取,而且還可以使用第三方外掛程式,利於hibernate使用的就是ehcache.

mybatis移植性不好,有自己編寫的sql語句 ,當面對不同型別的資料庫時需要修改sql語句,而hibernate的hql資料庫,移植性好,因為它裡面沒有sql語句。

詳談Mybatis中插入資料時注入主鍵值的幾種方法

在我們使用mybatis的過程中,在表中插入某條資料時,通常會傳入乙個實體類 例如 insert insert into emp empno,ename,job values int insert emp emp 但這個實體類的主鍵字段 這裡為empno 在mysql中通常都是設定為自動增長的,通常...

詳談 Redis事務和訊息訂閱

可以一次執行多個命令,本質是一組命令的集合。乙個事務中的 所有命令都會序列化,按順序地序列化執行而不會被其它命令插入,不許加塞。事務能做的事 乙個佇列中,一次性 順序性 排他性的執行一系列命令 常用命令 下面的演示說明 redis是部分支援事務的。不保證原子性。首先介紹了樂觀鎖和悲觀鎖 watch監...

詳談js防抖和節流

本文由小芭樂發表 首先舉乙個例子 模擬在輸入框輸入後做ajax查詢請求,沒有加入防抖和節流的效果,這裡附上完整可執行 1.沒有防抖的輸入 效果 在輸入框裡輸入乙個,就會觸發一次 ajax請求 此處是console 沒有防抖和節流 缺點 浪費請求資源,可以加入防抖和節流來優化一下。本文會分別介紹什麼是...