Mybatis学习笔记二:以接口方式编程

在上一章中,已经完成了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配置文件中的方法名保持一致,不然会提示方法未找到。
未尽之处后期再补,代码下载地址:https://github.com/EdwardEricZhang/MybatisFun

没有更多推荐了,返回首页