刚接触MyBatis是在Jike的视频中学习的,但是之后又发现和项目中的MyBatis的用法不太一致。上网找了好多资料,发现网上的教程分为两种写法:

第一种,是jike视频中的写法,写好map.xml文件之后,在MyBatis基本配置文件指定好这个map文件的位置后就直接

User user = (User) session.selectOne("selectUser", "3");

第二种就是 mapper接口式,叫做面向接口编程。

先定义一个UserMapper的Interface ,然后Mapper文件的namespace指向的就是这个Interface,
然后使用的时候
UserMapper userMapper =sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUser("jun");

(具体的使用可以参考博客:http://blog.csdn.net/mpfly/article/details/73348143)

第一种,selectOne就是选择一条记录,解析xml里sql,把参数绑定上去,执行sql,最后把sql返回的结果填充到Goods对象里。内部实现都是jdbc啦,只不过不用你写这些琐碎的细节了,全有mybatis搞定。

第二种,UserMapper userMapper =sqlSession.getMapper(UserMapper.class);得到了一个UserMapper的代理。核心是JDK的动态代理。你只要定义UserMapper这个接口的方法getUser就可以了,mybatis生成代理,也是实现UserMapper接口的,然后解析xml,调用SQL,返回结果给你。你自己则根本感觉不到代理的存在,感觉就是在调用UserMapper。

底层代码里,第二种其实最后还是会调用第一种的selectOne的。

最新文章

  1. Asp.net Core中使用NLog,并封装成公共的日志方法
  2. centos7下安装vsftpd配置
  3. zabbix监控phpfpm
  4. Vijos p1165 火烧赤壁 离散化+单调栈
  5. Jquery获取元素坐标
  6. 大Q品牌故事_大Q官网_腾讯旗下买卖宝公司倾力打造
  7. 【转】c++继承:公有、私有、保护
  8. js动态添加file控件
  9. Mycat 设置全局序列号
  10. 20162323周楠《Java程序设计与数据结构》第八周总结
  11. wGenerator如何编写模板
  12. P1052 过河
  13. Jenkins 无法捕获构建脚本错误问题
  14. BZOJ2004 HNOI2010公交线路(状压dp+矩阵快速幂)
  15. C# 基于 adb 控制安卓
  16. BZOJ 4636: 蒟蒻的数列 分块
  17. SpringBoot+SpringAOP+Java自定义注解+mybatis实现切库读写分离
  18. JAVA简单内存泄露分析及解决
  19. 提高 web 应用性能之 CSS 性能调优
  20. Linux 目录流管理

热门文章

  1. Intellij IDEA debug jar包
  2. Vue源码探究-源码文件组织
  3. FZU1901 Period II —— KMP next数组
  4. html5--6-6 CSS选择器3
  5. [Selenium] HTML5 中的 Geolocation
  6. MYSQL数据库学习----索引和触发器
  7. cocos2dx-js 初探 整体流程helloworld.html分析
  8. HTML <legend> 标签
  9. CF 8D two friends
  10. 002--linux基础命令