《MyBatis技术原理与实战》之SqlSession的用途
生活随笔
收集整理的這篇文章主要介紹了
《MyBatis技术原理与实战》之SqlSession的用途
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.Mybatis中SqlSession主要有兩種用途:
- 獲取映射器,讓映射器通過(guò)命名空間和方法名稱找到對(duì)應(yīng)的SQL,發(fā)送給數(shù)據(jù)庫(kù)執(zhí)行后返回結(jié)果
- 直接通過(guò)命名信息去執(zhí)行SQL返回結(jié)果,這是IBatis版本留下的方式。在sqlSession層我們可以通過(guò)update、insert、select、delete等方法,帶上SQL的id來(lái)操作XML中配置好的SQL,從而完成我的工作;與此同時(shí)它也支持事物,通過(guò)commit、rollback方法提交或者回滾事務(wù)。
2.SqlSession獲取映射器,然后映射器去發(fā)送sql
//獲取映射器 RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class); Role role = roleMapper.getRole(1L);//執(zhí)行方法3.SqlSession直接發(fā)送sql執(zhí)行并返回結(jié)果
Role role = sqlSession.selectOne("com.learn.chapter2.mapper.RoleMapper.getRole",1L);還需查詢列表的selectList等方法。
4.兩者區(qū)別與用途
- sqlSession.selectOne是功能性代碼,長(zhǎng)長(zhǎng)的字符串比較晦澀難懂,不包含業(yè)務(wù)邏輯的含義,不符合面向?qū)ο蟮囊?guī)范。而對(duì)于roleMapper這樣的才是符合面向?qū)ο笠?guī)范的編程,也更符合業(yè)務(wù)的邏輯。
- 使用Mapper方式,IDE可以檢查Java預(yù)發(fā),避免不必要的錯(cuò)誤。
- 在實(shí)際開發(fā)中,一般都采用面向接口編程,此時(shí)是沒(méi)有dao層實(shí)現(xiàn)類的,所以sqlSession.selectOne也不適用。
總結(jié)
以上是生活随笔為你收集整理的《MyBatis技术原理与实战》之SqlSession的用途的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《MyBatis技术原理与实战》之动态S
- 下一篇: String类split方法