返回实体类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MyBatis-Plus中返回实体类返回Map存在多方面的区别: ### 数据结构 - **实体类**:是预先定义好的Java类,有明确的属性和类型,属性名和数据库表字段通常存在映射关系。例如定义一个`User`实体类: ```java public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` - **Map**:是一种键值对的数据结构,键和值的类型可以是任意的,在运行时动态存储数据,不需要预先定义结构。 ### 数据处理灵活性 - **实体类**:灵活性较差,因为实体类的结构是固定的。如果数据库表结构发生变化,实体类也需要相应修改。而且只能获取实体类中定义的属性数据。 - **Map**:灵活性高,可以动态添加、删除和修改键值对。可以根据不同的查询需求,灵活地存储不同的数据,无需受限于固定的实体类结构。 ### 数据可读性 - **实体类**:可读性好,因为实体类的属性名具有明确的语义,代码中可以直接通过属性名访问数据,提高代码的可维护性。例如: ```java User user = userMapper.selectById(1); String name = user.getName(); ``` - **Map**:可读性相对较差,因为Map的键通常是字符串,需要记住键的具体名称才能正确获取数据。例如: ```java Map<String, Object> userMap = userMapper.selectMapById(1); String name = (String) userMap.get("name"); ``` ### 性能 - **实体类**:在数据映射时,MyBatis-Plus需要将查询结果映射到实体类的属性上,有一定的性能开销。 - **Map**:由于不需要进行实体类的映射,直接将查询结果存储在Map中,性能相对较高。 ### 适用场景 - **实体类**:适用于数据结构固定、业务逻辑明确的场景,如单表的增删改查操作。 - **Map**:适用于复杂查询、动态查询或者需要灵活处理数据的场景,如多表关联查询返回部分字段。 ### 代码示例 返回实体类: ```java @Mapper public interface UserMapper extends BaseMapper<User> { User selectById(Long id); } ``` 返回Map: ```java @Mapper public interface UserMapper extends BaseMapper<User> { Map<String, Object> selectMapById(Long id); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值