1. 常用的访问数据库的方式
说实话,我就只用过4种:
第1种,自己编写JDBC访问数据库,或者简单的封装下JDBC访问数据库,毫无疑问这种大家应该都写过,但是质量堪忧。因为绝大多数程序员还达不到封装国际知名类库的能力,而后面的方式都是国际知名的。
第2种,使用SpringJDBC,基本还是按JDBC的方式访问数据库,不过将重复代码封装起来了,更加简洁优雅。
第3种,Hibernate,比较全面彻底的ORM封装,想当年我学Java Web开发的时候,最流行的就是SSH(Spring+Struts+Hibernate)。目前应用也很多,在国内国企、传统软件公司用的很多。
第4种,MyBatis,前身是iBatis。相比于Hibernate,ORM封装并没有那么彻底,也就是说还需要写不少sql语句。但是恰恰这顺应了互联网发展的浪潮。互联网公司的项目,往往都面临流量大数据库压力大的困难,而MyBatis可以自由的编写sql语句便于定制、优化sql。所以目前互联网公司采用MyBatis的更多,目前形成了非常流行的SSM(Spring+SpringMVC+MyBatis)。
但是没有最好,只有最合适。非常小的项目可以直接JDBC+Servlet;如果是使用了Spring的话,可以直接用SpringJDBC比原生JDBC更快更方便;如果是比较大一点的项目还是推荐使用Hibernate或者MyBatis,当然我个人是更加推荐MyBatis的,写起来更加爽快,Hibernate我感觉太繁琐了,然后我日常工作也经常需要优化一些sql,从这一点上使用MyBatis也更方便点。
2. MyBatis 应用场景
其实上面已经分析了,可以说只要正儿八经的项目,需要访问数据库的(还有不需要的吗?),都建议使用MyBatis。
3. MyBatis 基本工作流程
执行java方法准备操作数据库
该方法对应元数据中配置的sql语句,此时转而执行sql
执行完成后,根据元数据配置将结果转换为java数据结构。此处描述对象-关系映射的元数据指的是注解或xml
主要工作流程就是这样。