mybatis入门之二、使用接口interface

来源:互联网 发布:现代通信网络试题答案 编辑:程序博客网 时间:2024/05/21 14:56

2.1 为何使用接口 interface 来编程

**上一章用SqlSession实例来直接执行已映射的SQL语句:
session.selectOne(“com.yihaomen.mybatis.models.UserMapper.selectUserByID”, 1)
而更好的方法,是使用描述参数和SQL语句返回值的借口(eg:IUser)**

2.2 项目目录

项目结构

2.3 各个文件内容

* 接口interface*

package com.mybatis.dao;import com.mybatis.models.User;public interface IUser {    public User selectUserByID(int id);}

Test文件

import java.io.IOException;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 com.mybatis.dao.IUser;import com.mybatis.models.User;public class Test {    private static SqlSessionFactory sqlSessionFactory;    private static Reader reader;    static {        try {            reader = Resources.getResourceAsReader("Configure.xml");            sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static void main(String[] args) {        SqlSession sqlSession = sqlSessionFactory.openSession();;        try {            IUser iUser=sqlSession.getMapper(IUser.class);            User user=iUser.selectUserByID(1);            System.out.println("id:"+user.getId()+"  name"+user.getName()+"  phone:"+user.getPhone());        } catch (Exception e) {            e.printStackTrace();        }finally{            sqlSession.close();        }    }}

其他都不需要改动,需要注意的是 User.xml里, mapper的 namespace=”com.mybatis.dao.IUser”,需要按实际改动, mapper.select id=”selectUserByID” 与接口中public User selectUserByID(int id);要一致
通过与第一章节的对比,会发现不同

0 0
原创粉丝点击