一步步學Mybatis-以接口操做的方式編程(2)

  上一章節中,咱們已經搭建玩了最簡單的可以運行的HelloWorld環境,這一章將把上章中的操做方式改成以接口的方式操做java

咱們能夠發如今上一個章節中數據庫

    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>

  這樣其實在真正的開發過程當中若是兩邊的名字一不當心沒有對應上,就會出現異常。爲了不這樣的狀況咱們能夠採起接口的方式來進行相應的操做,下面咱們來修改這段東西。session

首先咱們在包名爲david.mybatis.demo的下面新建一個IVisitOperation類,表示從此將要操做數據庫全部方法的接口,以下所示:mybatis

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) {
            // TODO: handle exception
        }
    }

這樣就大功告成了,這樣咱們就沒必要爲手動書寫方法名可能致使的不匹配而煩惱了。app

下一章將繼續講述基於單表狀況下的CRUD操做,我會盡快整理更新~^0^spa

相關文章
相關標籤/搜索