快速上手Mybatis框架—入门详解

  • 注:此文不是讲解Mybatis的使用步骤。

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

特点:

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射
  • 提供对象关系映射标签,支持对象关系组建维护
  • 提供xml标签,支持编写动态sql。

这几天,学生学习Mybatis框架过程中,感觉Mybatis框架确实很简单,但是一使用就可能出现各种问题,在此给大家讲下快速学习Mybatis框架中需要把握的核心。

首先,Mybatis框架是一个JDBC的封装框架,所以步骤中肯定包含要将SQL语句使用JDBC的方式进行执行。

在Mybatis框架中,SQL的语句一般是直接编写,根据数据库的种类编写Native SQL。

其次,JDBC在使用过程中最麻烦的就是参数的设置,和结果集的封装,那么Mybatis框架肯定要解决这些问题。

在Mybatis框架中,使用的是实体类来完成参数的传递和结果集的封装的,也就意味着,如果不需要传参也不需要封装一个结果集,那么甚至不需要实体类的存在。

在封装结果集的时候注意resultType和resultMap的差异。

再次,当需要处理表关系或联表查询的时候,一般的持久化框架会采用延迟加载加缓存的形式来优化,那么Mybatis框架肯定也不例外。

一级缓存默认使用。默认不是懒加载的,需要自己设置fetchType为lazy,即使关闭了连接,当访问查询结果中的lazy属性时,也会开启数据连接并查询数据。

在使用关联查询的时候记得区分association和collection的区别。

最后,对应哪些复杂的查询语句也需要有一定的处理能力,于是Mybatis中就有了动态SQL。

注意:在SQL中区分$和#的区别。

把握以上这些,就能够很容易上手Mybatis框架了。

你可能感兴趣的:(java教程,Java小白课堂)