所有研究对象
-
JDBC:java自带的操作数据库的API,比较原始,需要手动写open/close connection、catch exception等代码,烦
-
jdbcTemplate:对JDBC的封装,开发者只需要提供sql,省去了很多步骤。
-
MyBatis:也是对JDBC的封装,省去了一些步骤。需要写xml
-
myBatis-plus:国产的增强版,不用写xml,继承BaseMapper类即可获得CRUD(create/read/update/delete)功能。
-
JPA:java的一组持久层API规范,主要思想:将java对象和数据库的记录帮顶起来。
-
Hibernate:基于JPA规范的一套ORM框架,个人感觉比Spring JPA老一点。
-
Spring data JPA:基于JPA规范封装的一套JPA应用框架,底层使用了Hibernate的技术实现
-
JpaRepository:是Spring Data JPA框架中的一种类,除此之外还有Repository、CrudRepository等。(之前理解错了以为这个框架名字就叫JpaRepository= =
JDBC
JDBC stands for Java Database Connectivity. JDBC is a Java API to connect and execute the query with the database.
Why Should We Use JDBC
Before JDBC, ODBC API was the database API to connect and execute the query with the database. But, ODBC API uses ODBC driver which is written in C language (i.e. platform dependent and unsecured). That is why Java has defined its own API (JDBC API) that uses JDBC drivers (written in Java language).
jdbcTemplate
JdbcTemplate是Spring对JDBC的封装
jdbcTemplate实现了statement的建立和执行、打开/关闭数据库连接等,我们只需要提供sql语句。
JDBC能够满足用户最基本的需求,但是在使用JDBC时,必须自己来管理和操作数据库资源,例如:打开/关闭数据库连接,获取PreparedStatement,设置SQL语句参数等步骤。
虽然JDBC的用法简单,但是总有人出现严重错误,比如忘了关闭连接,导致系统资源耗尽,而JdbcTemplate能帮助我们避免这些错误。而且,JdbcTemplate实现了核心的JDBC工作流程,如Statement的建立和执行,而我们只需要提供SQL语句,坐等结果即可。