zoukankan      html  css  js  c++  java
  • MyBatis通过Mapper动态代理来实现curd操作

    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实现的最直接区别就是,方法体不需要自己手写。

    以下是规范:

  • 相关阅读:
    GeoHash
    CMake官方教程翻译文档
    常用开源系统
    Python Tools
    CMake 笔记
    Nginx 多进程连接请求/事件分发流程分析
    连麦方案中各条流之间时间戳同步问题
    音视频重新编码时间戳同步问题
    基于网络流音视频包的音视频解码思路
    协程库st(state threads library)原理解析
  • 原文地址:https://www.cnblogs.com/tonbby/p/9159847.html
Copyright © 2011-2022 走看看