浅入浅出Mybatis(一)

86 阅读2分钟

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

任何东西的诞生都具备一定的诉求或者合理性,所以在讲mybatis之前,我们先回顾一下web应用是如何与数据库交互的。这里的语言环境是java,所用的数据库是mysql,其他的其实从原理上没什么区别。

  1. 加载驱动程序 一般mysql的驱动程序是com.mysql.jdbc.Driver,这是mysql提供给java客户端的驱动程序,连接mqsql之前得完成驱动的实例化。

  2. 获取数据库连接 这里需要的是数据库的url、username、password。这里需要实例化一个Connection对象。

  3. 创建SQL并执行 这里就可以写我们想要的SQL,然后执行并获取执行结果了。这里需要实例化一个Statement对象。

  4. 解析结果 上一步执行完之后会返回一个ResultSet对象,需要从这里根据数据库字段遍历获取对应的结果。

  5. 关闭连接 用完之后要及时释放资源,C语言开发者不会陌生。

以上5步在每一次与数据库交互时都需要按顺序执行一遍,性能差是肯定的,这里的重复代码是何其的啰嗦,如果是一个比较庞大的系统时,会出现堆积如山的SQL语句和结果遍历。虽然1,2,5这三步可以进行封装,但面对不同的查询和写入场景,这都是难以复用的复杂工作。

这个时候ORM框架便应运而生了。ORM的全称是Object Relational Mapping,即对象关系映射。对象指的就是java对象,关系指的是mysql这样的关系型数据库的表关系,ORM框架做的事情就是将上面的事情集中起来,不仅封装了1,2,5这样的资源获取与释放,更大的意义是将3,4这样的繁琐的操作友好到一个很小的程度,变成一个个xml文件的表达,并且直接把结果集绑定到指定的java数据对象。同时,像即将要探讨的mybatis还支持了连接池,缓存,主键自增,懒加载等更好用的功能。