为什么要有mybatis?——mybatis
每日一言
知道为什么有这个东西,才能更深刻地理解它,更熟练地使用它。
首先,我们举一个例子来谈谈
假设你正在开发一个电商网站,该网站需要处理大量的用户数据、商品数据以及订单数据。在这个过程中,你将频繁地与数据库进行交互,以执行各种查询、插入、更新和删除操作。
到这里,你会想到Mysql数据库以及SQL语句,配合某种编程语言或框架进行使用,没错。
如果没有使用MyBatis或其他类似的持久层框架(记住这个词,之后会提到,帮助你理解),你可能需要直接编写大量的JDBC代码来与数据库通信。
你需要做这些:
-
加载数据库驱动:每次与数据库交互时,都需要加载相应的数据库驱动。
-
创建数据库连接:使用JDBC的
DriverManager
类来获取数据库连接。 -
创建SQL语句:根据业务需求编写SQL查询语句。
-
执行SQL语句:通过
Statement
或PreparedStatement
对象执行SQL语句。 -
处理结果集:如果SQL语句返回结果集,需要遍历结果集并处理数据。
-
关闭资源:在执行完数据库操作后,需要关闭
Statement
、ResultSet
和Connection
等资源,以避免资源泄露。
好,不知道你看没看完,总之,你知道了:这个过程很复杂,简单复述就是每一次它都需要重新加载、链接、访问数据库之后再执行操作。同时,还具有一定风险,因为你需要手动关闭资源,你会不会忘?好,那你完了,可能造成资源泄漏。还有SQL注入攻击。
而我们的主角mybatis,可以简化这个过程:
-
配置MyBatis:在项目中配置MyBatis,包括指定数据库连接信息、映射文件位置等。
-
编写映射文件:在映射文件中定义SQL语句和Java对象之间的映射关系。
-
使用MyBatis API:通过MyBatis提供的API(如
SqlSession
)来执行数据库操作。MyBatis会根据映射文件中的配置,自动生成相应的SQL语句,并执行它。 -
处理结果:MyBatis会自动将结果集映射为Java对象,你可以直接处理这些对象。
-
关闭资源:MyBatis会管理数据库连接和其他资源的生命周期,你不需要手动关闭它们。
什么?你说一点也不简单!实际项目操作只需要你使用第三步,即调用它的API。
最后,进行一下总结。
持久层框架提供了一套机制,使得开发者能够以更加抽象和便捷的方式操作数据库,而无需直接编写大量的数据库访问代码(JDBC方式),而MyBatis就是其中的佼佼者。
名词解释
何为JDBC?——(Java Database Connectivity)
简单来说,就是你通过JDBC提供的接口去链接访问数据库进行操作。JDBC是Java程序与数据库之间交互的桥梁,它提供了一套标准的API,使得Java程序能够以一种通用的方式与各种数据库进行通信。
What it would do?
建立数据库连接——>发送SQL语句——>处理结果
何为API?——(Application Programming Interface)
就是我们常说的接口,简单来说,就是你可以直接调用人家封装好的程序(函数、组件、软件等等),API充当了软件组件之间的“粘合剂”,允许不同的软件应用程序相互交互,共享数据或功能。