ORM思维介绍

ORM,全称为Object-Relational Mapping,即对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

ORM技术位于应用和数据库之间,作为一层中间件,用于实体对象(例如 POJO)和关系数据(数据库表的行)之间的转换。简单来说,ORM旨在建立领域模型(也称为实体对象,例如 POJO)和数据库表之间的映射,使得对实体对象的操作可以转换为对数据库表的操作。例如,当需要新增一个实体对象时,只需要创建一个新的实体对象,将数据传给对象,然后执行存储操作,ORM框架会自动负责建立实体对象的属性和数据库表的字段的对应,然后自动生成相应的SQL语句并执行,将数据持久化到数据库。

ORM思维的核心在于将数据库表结构映射为面向对象编程语言中的实体对象,使得开发者可以使用面向对象的方式进行数据库操作,而无需关心底层的SQL语句和数据库表结构。这种思维可以大大提高开发效率,减少维护复杂数据访问层的成本,同时也使得代码更加简洁、易读和易维护。

总的来说,ORM思维是一种重要的编程思想,它使得开发者可以更加高效地进行数据库操作,同时也降低了开发难度和成本。在实际开发中,合理使用ORM技术可以带来很多好处,但也需要注意其可能带来的问题,如性能问题、过度封装导致的灵活性降低等。因此,在使用ORM技术时,需要根据实际情况进行权衡和选择。

最终目的: 让我们可以使用面向对象思维进行数据库操作!!!

ORM框架通常有半自动和全自动两种方式

ORM框架通常分为全自动和半自动两种方式,这主要取决于框架如何处理数据映射和SQL语句的生成。

全自动ORM框架,如Hibernate,提供了最高级别的自动化。在这种模式下,开发者只需要调用相关接口或方法,框架就会自动完成所有的数据映射和SQL语句生成。例如,开发者可以通过定义实体类(POJO)来映射数据库表,框架会根据这些实体类自动生成对应的SQL语句,完成数据的增删改查等操作。这种方式极大地简化了开发者的工作,但也可能导致一定的灵活性降低,因为开发者无法直接控制生成的SQL语句。

半自动ORM框架,如MyBatis,则需要开发者手动完成一部分工作。在这种模式下,开发者需要自行定义SQL语句,并通过映射文件或注解将SQL语句与实体类关联起来。框架会根据这些映射关系,将实体对象转换为SQL语句的参数,以及将查询结果映射回实体对象。这种方式在提供了一定程度的自动化的同时,也保留了开发者对SQL语句的直接控制,因此灵活性更高。

总的来说,全自动和半自动ORM框架各有优缺点,选择哪种方式主要取决于开发者的具体需求和偏好。例如,如果开发者希望尽可能地减少手写代码和提高开发效率,那么全自动ORM框架可能是一个更好的选择。而如果开发者对SQL语句有更高的控制需求,或者希望更好地优化数据库性能,那么半自动ORM框架可能更适合。

半自动和全自动 ORM 框架的区别

半自动和全自动 ORM 框架的主要区别在于 SQL 语句的生成和控制权。

全自动 ORM 框架,如 Hibernate,会根据实体类(POJO)和数据库表之间的映射关系,自动生成对应的 SQL 语句。开发者只需要通过调用框架提供的方法,就可以完成数据的增删改查等操作,无需手动编写 SQL 语句。这种方式极大地简化了开发者的工作,同时也减少了出错的可能性。但是,由于框架自动生成 SQL 语句,开发者无法直接控制生成的 SQL 语句,因此可能在某些情况下无法满足特定的需求或优化。

半自动 ORM 框架,如 MyBatis,则需要开发者手动编写 SQL 语句,并通过映射文件或注解将 SQL 语句与实体类关联起来。框架会根据这些映射关系,将实体对象转换为 SQL 语句的参数,以及将查询结果映射回实体对象。这种方式在提供了一定程度的自动化的同时,也保留了开发者对 SQL 语句的直接控制,因此灵活性更高。开发者可以根据具体需求,编写和优化 SQL 语句,以满足特定的需求或提高数据库性能。

总的来说,全自动和半自动 ORM 框架各有优缺点,选择哪种方式主要取决于开发者的具体需求和偏好。如果开发者希望尽可能地减少手写代码和提高开发效率,那么全自动 ORM 框架可能是一个更好的选择。而如果开发者对 SQL 语句有更高的控制需求,或者希望更好地优化数据库性能,那么半自动 ORM 框架可能更适合。

posted @ 2024-02-29 00:20  Evan1024  阅读(48)  评论(0编辑  收藏  举报