最近工作比较闲,维护一个政府机关的短信发送平台,大部分业务逻辑都在Oracle数据库上,但自己明明应聘的是Java开发啊!!!整天写存储过程的我还是有一颗写高级语言的心啊!!!好吧!!!先找个数据库方面的框架学起来吧! 手头项目比较老,还在用ibatis,就找了它的后继者Myb ...
最近工作比较闲,维护一个政府机关的短信发送平台,大部分业务逻辑都在Oracle数据库上,但自己明明应聘的是Java开发啊!!!整天写存储过程的我还是有一颗写高级语言的心啊!!!好吧!!!先找个数据库方面的框架学起来吧!
手头项目比较老,还在用ibatis,就找了它的后继者Mybatis3来学习(3.3.0 released,24 May 2015)。
学习的期望是:
- 理解Mybatis相比JDBC最大的优点。
- 自己动手搭建Mybatis框架。
从这几个部分理解:
- Mybatis与ibatis的不同
- 动态SQL
没耐心的可以直接跳到最后看总结。
找来官方文档(还好有中文的)就读起来。
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。我们可以从 SqlSessionFactory 中获取 SqlSession ,SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。
我认为 SqlSessionFactory 相当于 ibatis中的SqlMapClient ,因为后者的方法中也有一个openSession()。SqlSession 相当于ibatis中的 SqlMapSession。
相比之下,Mybatis采用更清晰并且类型安全的方式来执行SQL映射。
1 SqlSession session = sqlSessionFactory.openSession();2 try {3 BlogMapper mapper = session.getMapper(BlogMapper.class);4 Blog blog = mapper.selectBlog(101);5 } finally {6 session.close();7 }
你一定感受过为了一个逗号而抓狂的经历,拼接的时候提醒自己一定不能忘了添加前后的空格和删除句末的逗号。
幸运的是,通过动态SQL这样的问题在Mybatis中不复存在。通过<where>来智能识别语句前后的and/or,<set>来识别语句前后的逗号,或使用<trim>来自定义实现。
通过<if test>来判断字段是否为空,<choose><when><otherwise>来实现类似switch……case的效果,<foreach>来实现集合的遍历,这里介绍了动态SQL。
总结:Mybatis框架优越之处在于使用
原标题:Mybatis3 框架理解
关键词:mybatis
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。