上一章節中,我們已經搭建玩了最簡單的能夠運行的HelloWorld環境,這一章將把上章中的操作方式改為以接口的方式操作
我們可以發現在上一個章節中
public static void testBasicQuery(int id) {
SqlSession session = MybatisUtils.getSqlSession();
try {
/*
* 此處的david.mybatis.demo.IVisitorOperation.basicQuery必須和下圖中配置里面的namespace對應
*/
Visitor visitor = (Visitor) session.selectOne("david.mybatis.demo.IVisitorOperation.basicQuery", id);
MybatisUtils.closeSession(session);
System.out.println(visitor);
} catch (Exception e) {
// TODO: handle exception
}
}
<!-- 此處namespace對應的就是你所傳的String參數 -->
<mapper namespace="david.mybatis.demo.IVisitorOperation">
<!-- 此處的resultType就是對應剛剛你在typeAlias節點里面規定的別名 -->
<select id="basicQuery" parameterType="int" resultType="Visitor">
select * from visitor where id=#{id} and
Status>0 order by Id
</select>
</mapper>
這樣其實在真正的開發過程中如果兩邊的名字一不小心沒有對應上,就會出現異常。為了避免這樣的情況我們可以采取接口的方式來進行相應的操作,下面我們來修改這段東西。
首先我們在包名為david.mybatis.demo的下面新建一個IVisitOperation類,表示今后將要操作數據庫所有方法的接口,如下所示:
package david.mybatis.demo;
import java.util.List;
import david.mybatis.model.PagenateArgs;
import david.mybatis.model.Visitor;
public interface IVisitorOperation {
/*
* 基礎查詢
*/
public Visitor basicQuery(int id);
}
修改操作方式
public static void testBasicQueryByInterfaceWay(int id) {
SqlSession session = MybatisUtils.getSqlSession();
try {
IVisitorOperation vOperation = session.getMapper(IVisitorOperation.class);
Visitor visitor = vOperation.basicQuery(id);
MybatisUtils.closeSession(session);
System.out.println(visitor);
} catch (Exception e) {
e.printStackTrace();
}
} 這樣就大功告成了,這樣我們就不必為手動書寫方法名可能導致的不匹配而煩惱了。
下一章將繼續講述基于單表情況下的CRUD操作,我會盡快整理更新~^0^
如果你覺得這篇文章對你有用,歡迎推薦[推薦]
如果你覺得文章內有錯誤歡迎指出^0^~
如果您想轉載本博客,請注明出處
如果您對本文有意見或者建議,歡迎留言
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則作者保留追究法律責任的權利。