Mybatis基礎:註解開發,面向介面(引出三個面向的區別)
阿新 • • 發佈:2020-10-25
面向介面的做作用:解耦
理解:定義(規範,約束),與實現的分離
介面本身放映了系統設計人員對系統的抽象理解
抽象介面應有兩類:
第一類是對一個個體的抽象,他可對應一個抽象體(abstact class);
是對一個個體某一方面的抽象,即形成一個抽象面(inface);
一個體可能有多個抽象面,抽象體和抽象面之間是有區別的
三個面向的區別
- 面向物件:我們考慮問題時,以物件為單位,要考慮例項化物件的屬性和方法
- 面向過程:當考慮問題時,是以一個具體流程(事務過程)為單位,考慮它的實現
- 面向介面:本質上與面對過程和麵對物件不是一個問題,更多的是考慮它整體的一個架構
使用註解實現介面
介面+註解
public interface UserMapper { @Select("select * from user") List<User> getUsers(); }
註冊機
<mappers>
<mapper class="com.king.dao.UserMapper"/>
</mappers>
測試
@Test public void mapperTest(){ SqlSession sqlSession= MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> userList = mapper.getUsers(); for (User user : userList) { System.out.println(user); } sqlSession.close(); }
缺點:
本質:反射機制實現
底層:動態代理模式