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);要一致
通过与第一章节的对比,会发现不同
3708

被折叠的 条评论
为什么被折叠?



