美文网首页
动态代理--抛弃原有的调用模式

动态代理--抛弃原有的调用模式

作者: 一起来看雷阵雨 | 来源:发表于2018-06-18 21:15 被阅读0次

在以前做项目的时候,见许多人喜欢使用下面的这种调用sql调用方式:
SqlSession sqlSession = getSqlSession();
List<User> userList = sqlSession.selectList("com.dao.UserDao.getAllUser");
通过namespace+sql的Id来定位一个sql,这种方式其实有许多弊端:
1.如果不看sql文件你很难确定返回的类型是什么,需要的参数是什么,就不得不自己去翻mapper文件。然而,大多数情况下,xml里的sql可读性差的令人发抖,再加上xml里并不适合写注释,可读性再一步下降,调用别人的代码时不由得抱怨一句(The code is shit);许多人为了避免看代码,干脆自己从新写一个,这样一来代码复用性就下降。
2.代码与xml紧耦合,万一以后要拆分或者合并mapper文件,还要去代码里一个一个改字符串,万一漏掉一个,很难发现,而且编写的时候错误率也会大大增加;

现在Mybatis官方提倡使用一种新的Mapper接口的形式来操作数据库,像这样:
SqlSession sqlSession = getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> userList = userDao.getAllUser();
通过接口与xml文件中的sql-id保持一致,利用动态代理生成代理类(动态代理加java文章),调用相应的方法;
以接口的形式,有哪些方法,方法的信息一目了然,还能避免各种拼写错误;

相关文章

  • 动态代理--抛弃原有的调用模式

    在以前做项目的时候,见许多人喜欢使用下面的这种调用sql调用方式:SqlSession sqlSession = ...

  • 代理模式-Proxy

    每个模式的名称就表明了该模式的作用,代理模式就是用代理类替代原对象进行一些操作。采用代理类调用原有的方法,可以对原...

  • Java动态代理研究

    浅说动态代理 关于java的代理模式,此处不过多讲解。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代...

  • Java动态代理实现及原理分析

    代理模式 给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问 什么是动态代理 运行时动态生成代理类 动态...

  • Java代理模式整理

    代理模式 静态代理 给对象提供代理对象,由代理对象控制对原对象的引用。代理模式如【中介】 目的 三个角色 动态代理...

  • 代理模式

    代理模式 代理模式(Proxy),通过代理类封装实际调用类,实现共同的接口,添加额外功能,跟装饰模式都是基于组合原...

  • 14.动态代理

    代理模式 java动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandle...

  • spring-aop

    1, aop的两种实现机制动态代理:利用jdk/cglib动态代理,性能弱一丢丢 jdk动态代理:所有的方法调用被...

  • JDK动态代理

    一、为什么需要动态代理 1.1 从代理模式说起 代理模式是指给某一个对象提供一个代理对象,并由代理对象控制对原对象...

  • Spring之代理模式

    九、代理模式 目录:静态代理、动态代理AOP的底层机制就是动态代理。代理模式分为静态代理和动态代理。接触aop之前...

网友评论

      本文标题:动态代理--抛弃原有的调用模式

      本文链接:https://www.haomeiwen.com/subject/saxoeftx.html