企业级框架总结

Spring Boot

Spring Boot是一个开源的Java框架,它简化了基于Spring的应用程序的构建和部署过程。以下是Spring Boot的一些优点和缺点:

优点

简化配置:Spring Boot采用约定大于配置的原则,自动配置大部分常见的应用程序组件,减少了繁琐的配置工作。

快速开发:Spring Boot提供了自动装配和快速启动的特性,可以快速创建和运行应用程序,并且内置了开发常见功能的库和工具。

微服务支持:Spring Boot对构建和部署微服务架构提供了良好的支持,可以轻松地创建独立、可扩展和可部署的微服务应用程序。

自包含部署:Spring Boot可以将应用程序及其所有依赖项打包成一个可执行的JAR文件,简化了应用程序的部署和分发过程。

生态系统丰富:Spring Boot建立在Spring框架的基础上,继承了Spring的优秀生态系统,可以方便地集成各种第三方库和工具。

缺点:

运行时性能:与传统的Spring应用相比,Spring Boot应用可能在运行时消耗更多的内存和处理时间,尤其是涉及大量自动装配的场景。

JdbcTemplate

JDBC作为Java访问数据库的API规范,统一了各种数据库的访问方式。但是,直接在Java程序中使用JDBC还是非常复杂和繁琐的。所以Spring对JDBC进行了更深层次的封装,而JdbcTemplate就是Spring提供的一个操作数据库的便捷工具。它主要是实现了数据库连接的管理,我们可以借助JdbcTemplate来执行所有数据库操作,例如插入、更新、删除和从数据库中检索数据,并且有效避免直接使用JDBC带来的烦琐

编码

优点

速度快,相对于ORM框架,JDBC的方式是最快的。

配置简单Spring封装的,除了数据库连接之外,几乎没有额外的配置。

使用方便,就像DBUtils工具类,只需注入JdbcTemplate对象即可。

缺点

缺乏对象映射:相比某些ORM框架(如Hibernate),JdbcTemplate不提供对象-关系映射(ORM)功能,不支持将数据库记录自动映射为Java对象。这意味着开发者需要手动处理结果集,并将其映射到对应的Java对象中。

操作复杂的查询较为繁琐:当需要执行复杂的查询操作时,使用JdbcTemplate可能会变得比较繁琐。例如,在进行连接、关联查询或分页查询时,需要手动编写更复杂的SQL语句和逻辑。

需要处理异常:在使用JdbcTemplate进行数据库操作时,需要手动处理可能出现的异常情况。虽然JdbcTemplate提供了异常处理的机制,但开发人员仍然需要针对具体的异常情况进行适当的处理和错误处理。

MyBatis

MyBatis是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

优点:

  1. 灵活的SQL控制:MyBatis允许开发者直接编写SQL语句,因此可以更好地控制数据库操作。开发者可以根据具体需求编写复杂的查询、更新和删除操作,充分发挥数据库的性能优势。
  2. 易于学习和使用:相比其他ORM框架,MyBatis拥有较低的学习曲线。它主要围绕SQL语句进行操作,而不需要理解复杂的ORM映射关系和对象模型。这使得初学者或对SQL较为熟悉的开发者更容易上手和使用。
  3. 高性能:MyBatis使用了简单而高效的对象关系映射方式,减少了系统开销。与全自动的ORM框架相比,MyBatis更加轻量级,执行效率更高,适用于对性能要求较高的应用场景。
  4. 可扩展性强:MyBatis提供了丰富的插件机制,可以通过自定义插件扩展其功能。开发者可以自定义类型转换器、拦截器以及自定义SQL解析等,满足特定需求并与现有系统集成。

缺点:

  1. 需要手动编写SQL:相比全自动的ORM框架,MyBatis需要手动编写大量的SQL语句,包括查询、更新和删除等操作。这对于不熟悉SQL或希望使用更高级抽象的开发者来说,可能会增加一定的学习和工作量。
  2. 冗余的SQL代码:由于需要手动编写SQL语句,可能会导致一些SQL代码的冗余。例如,多个查询方法可能会涉及到相似的SQL逻辑,需要进行重复的编写和维护。
  3. 对复杂查询支持相对较弱:MyBatis在处理复杂查询时可能会显得繁琐,特别是在进行连接、关联查询或分页查询时需要手动编写较为复杂的SQL语句。

Jpa

JPA是Java Persistence API的简称,是 Java持久化API,是一套Sun(现在的Oracle)公司Java官方制定的ORM 方案,是一种规范或标准JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询JPA可以通过注解或者XML描述对象-关系表之间的映射关系,并将实体对象持久化到数据库中JPA提供的功能

优点:

1. ORM映射元数据 JPA支持XML和注解两种元数据的形式,元数据用来描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中

2. JPQL查询语言通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合

3. JPA API用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来

缺点:

  1. 学习曲线较陡峭:相比传统的JDBC操作,JPA的学习曲线较陡峭。开发者需要了解JPA的概念、注解和API,并理解其底层原理,这需要一定的学习和实践。
  2. 难以处理复杂查询:当需要执行复杂的查询操作时,使用JPA可能会比较繁琐。JPA的查询语言(JPQL)相对SQL更为受限,不够灵活,对于较复杂的查询需求可能需要编写复杂的JPQL语句。
  3. 性能问题:由于提供了ORM支持,JPA框架在某些情况下可能导致性能损失。特别是在大量数据操作、复杂关联查询或高并发场景下,JPA的性能可能不如手动优化的SQL操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值