MyBatis官方推荐使用mapper代理方法开发mapper接口,程序员不需要编写mapper实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或者map对象,保证dao的通用性
代理对象的方法体同上一篇博客里的Dao接口实现类的方法。
首先,我们定义一个UserMapper接口,接口同上一篇博客里Dao的接口。
public interface UserMapper { public User findUserById(Integer id); //动态代理形式中,如果返回结果是List, mybatis会在生成实现类的使用时自动调用selectList方法
public List<User> findUserByUsername(String username);public List<User> findUserByUsernameAndId(User user);
}
然后编写对应的UserMapper.xml配置文件
内容同上一篇的User.xml
但是需要修改nameSpace为对应的UserMapper.java接口的路径
然后我们需要在最核心的配置文件,SqlMapConfig.xml文件中,把UserMapper.xml引入进去。
在企业开发中。会存在许多个类似UserMapper.xml之类的。所以采用包扫描的方式更能方便开发。
其他的没什么变化。
接口里的方法不需要我们实现,MyBatis帮我们实现好了。
测试代码:
和用原始Dao实现的最直接区别就是,方法体不需要自己手写。
以下是规范: