在上一章中,已经完成了Mybatis环境的搭建以及简单的使用。在本章中,主要使用接口的方式来完成数据的访问。
1、创建接口
创建包com.dfz.mybatis.mapper,在此包下创建一个名为UserMapper的接口,定义如下:
package com.dfz.mybatis.mapper;
import com.dfz.mybatis.model.User;
/**
* Created by zhangsiyuan on 2016/11/2.
*/
public interface UserMapper {
public User selectUserByID(int id);
}
其中,接口中的方法selectUserByID与我们在上一章定义的User.xml中的select id一致,不然无法找到该方法。同时接口名应与User.xml中的namespace保持一致,否则会找不到类。
测试代码修改如下:
private SqlSessionFactory sqlSessionFactory;
private Reader reader;
@Before
public void before() {
try {
//读取mybatis参数
reader = Resources.getResourceAsReader("mybatis-config.xml");
//建立session factory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test() {
//打开session
SqlSession session = sqlSessionFactory.openSession();
//使用接口方式调用查找方法
User user = session.getMapper(UserMapper.class).selectUserByID(1);
System.out.println(user);
session.close();
}
其余不用改动,运行之后结果如下:
2、总结
1)Mybatis只用声明dao接口,不需要编写dao的实现类;
2)接口与xml文件中的namespace需保持一致,不然会报BindingException,并提示接口未注册;
3)接口中的方法名需要与xml配置文件中的方法名保持一致,不然会提示方法未找到。