浅入浅出 Mybatis(一)
任何东西的诞生都具备一定的诉求或者合理性,所以在讲 mybatis 之前,我们先回顾一下 web 应用是如何与数据库交互的。这里的语言环境是 java,所用的数据库是 mysql,其他的其实从原理上没什么区别。
加载驱动程序
一般 mysql 的驱动程序是com.mysql.jdbc.Driver
,这是 mysql 提供给 java 客户端的驱动程序,连接 mqsql 之前得完成驱动的实例化。
获取数据库连接
这里需要的是数据库的 url、username、password。这里需要实例化一个Connection
对象。
创建 SQL 并执行
这里就可以写我们想要的 SQL,然后执行并获取执行结果了。这里需要实例化一个Statement
对象。
解析结果
上一步执行完之后会返回一个ResultSet
对象,需要从这里根据数据库字段遍历获取对应的结果。
关闭连接
用完之后要及时释放资源,C 语言开发者不会陌生。
以上 5 步在每一次与数据库交互时都需要按顺序执行一遍,性能差是肯定的,这里的重复代码是何其的啰嗦,如果是一个比较庞大的系统时,会出现堆积如山的 SQL 语句和结果遍历。虽然 1,2,5 这三步可以进行封装,但面对不同的查询和写入场景,这都是难以复用的复杂工作。
这个时候 ORM 框架便应运而生了。ORM 的全称是 Object Relational Mapping,即对象关系映射。对象指的就是 java 对象,关系指的是 mysql 这样的关系型数据库的表关系,ORM 框架做的事情就是将上面的事情集中起来,不仅封装了 1,2,5 这样的资源获取与释放,更大的意义是将 3,4 这样的繁琐的操作友好到一个很小的程度,变成一个个 xml 文件的表达,并且直接把结果集绑定到指定的 java 数据对象。同时,像即将要探讨的 mybatis 还支持了连接池,缓存,主键自增,懒加载等更好用的功能。
评论