Mybatis框架原理

1. 原生态jdbc程序中存在的问题

  • 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。
  • 将sql语句硬编码到Java代码中,如果sql语句修改,需要重新编译Java代码,不利于系统维护
  • 向prepareStatement中设置参数,对占位符位置和设置参数值,硬编码在Java代码中,不利于系统维护
  • 从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护

2.Mybatis是什么

  • Mybatis是一个持久层的框架,是apache下的顶级项目。
  • Mybatis托管到goolecode下,后来托管到github下https://github.com/mybatis/mybatis-3/releases
  • Mybatis让程序主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。
  • Mybatis可以将向PreparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。

3.Mybatis框架原理图

Mybatis框架原理