一茶凳、歷史回顧
(一)、上節(jié)課總結的注意事項
1播揪、如果使用的事務方式為JDBC贮喧,則需要手工commit提交,即session.commit();
2猪狈、所有的標簽<select>箱沦、<update>等,都必須有SQL語句雇庙,但是SQL參數值可選谓形。帶條件的就需要第二個參數。
二疆前、Mybatis約定以及基于動態(tài)代理方式的CRUD
(一)寒跳、mapper動態(tài)代理方式的CRUD(Mybatis接口開發(fā))
1、原則:約定優(yōu)于配置(maven講過這些竹椒,請自己回顧)
2童太、具體實現步驟:
(1)、在上節(jié)課的CRUD例子的基礎上
(2)、不同之處:
約定的目標:省略掉statement书释,即根據約定直接可以定位出SQL語句翘贮。
接口遵循的規(guī)則:
* 1、方法名和mapper.xml文件中標簽的id值相同
* 2征冷、方法的輸入參數和mapper.xml文件中標簽的parameterType類型一致择膝。(如果沒有parameterType,則沒有方法參數)
* 3检激、方法的返回值 和 mapper.xml的resultType類型一致肴捉。(如果沒有resultType,則沒有方法返回值為void)
注意:除了以上約定叔收,要是實現接口中的方法和xxxMapper.xml中的SQL標簽一一對應齿穗,還需要以下兩點:
匹配的過程:(約定的過程)
(a)、根據接口名找到mapper.xml文件(根據的是namespace=接口全類型)
(b)饺律、根據接口的方法名找到mapper.xml文件中的SQL標簽(方法名=SQL標簽Id值)
以上兩點可以保證:當我們調用接口中的方法窃页,程序能自動定位到某一個mapper.xml中的SQL標簽。
總結:以上可以通過接口的方法 ---> SQL語句复濒。執(zhí)行:
PersonMapper personMapper = (PersonMapper) sqlSession.getMapper(PersonMapper.class);
personMapper .方法();
通過session對象獲取接口(sqlSession.getMapper(接口.class))脖卖,在調用該接口中的方法,程序會自動執(zhí)行該方法對應的SQL巧颈。
例:
新增PersonMapper.java接口:并且將接口和xxxMapper.xml文件放在一個文件夾畦木,并修改xxxMapper.xml和conf.xml對于xxxMapper.xml的配置路徑。
新建testInterfaceClient測試類: