mybatis以接口方式編程

前面一章mybatis入門中已經搭建好了mybatis的運行環境,並且實現了一個簡單的查詢,該方式是sqlSession實例來直接執行已映射的sql語句
session.selectOne(“cn.bdyl.model.UserMapper.selectUserById”,1);
下面我們介紹下以接口的方式編程的方法(使用該方式能有效的避免字符串文字和轉換的錯誤):
首先,在src創建一個專門用於存放合理描述參數和SQL語句返回值的接口(UserMapper):

package cn.bdyl.mapper;

import cn.bdyl.model.User;

public interface UserMapper {
    public User selectUserById(int id);
}

最終目錄結構如下:
這裏寫圖片描述

注意:該接口中的selectUserById方法名必須與User.xml文件中select標籤的id屬性相同,並且mapper標籤的namespace屬性值必須與UserMapper接口的路徑形同。

做好了以上步驟後,我們需要來重寫一下test代碼

package cn.bdyl.test;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import cn.bdyl.mapper.UserMapper;
import cn.bdyl.model.User;

public class Test {
    private static SqlSessionFactory sqlSessionFactory;
    private static Reader reader;

    static{
        try {
            reader = Resources.getResourceAsReader("Configuration.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static SqlSessionFactory getSession(){
        return sqlSessionFactory;
    }

    public static void main(String[] args) {
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            User user = userMapper.selectUserById(1);
            System.out.println(user.getName()+"--"+user.getAddress()+"--"+user.getSex());

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(session != null){
                session.close();
            }
        }
    }
}

輸出結果:
這裏寫圖片描述

發佈了57 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章