`

java 使用反射在dto和entity 实体类之间进行转换

阅读更多

public class Utils {

/**

* 将dto和entity之间的属性互相转换,dto中属性一般为String等基本类型,

* 但是entity中可能有复合主键等复杂类型,需要注意同名问题

* @param src

* @param target

*/

public static Object populate(Object src, Object target) {

Method[] srcMethods = src.getClass().getMethods();

Method[] targetMethods = target.getClass().getMethods();

for (Method m : srcMethods) {

String srcName = m.getName();

if (srcName.startsWith("get")) {

try {

Object result = m.invoke(src);

for (Method mm : targetMethods) {

String targetName = mm.getName();

if (targetName.startsWith("set") && targetName.substring(3, targetName.length())

.equals(srcName.substring(3, srcName.length()))) {

mm.invoke(target, result);

}

}

} catch (Exception e) {

 

}

}

}

return target;

}

/**

* dto集合和实体类集合间的互相属性映射

* @param src

* @param target

* @param targetClass

* @return

*/

@SuppressWarnings("unchecked")

public static <S,T> List<T> populateList(List<S> src,List<T> target,Class<?> targetClass){

for(int i = 0;i<src.size();i++){

try {

Object object = targetClass.newInstance();

target.add((T) object);

populate(src.get(i),object);

 

} catch (Exception e) {

continue;//某个方法反射异常

}

return target;

}

}

 

0
3
分享到:
评论

相关推荐

    数据库表转实体类和DTO

    数据库表转实体类和DTO是软件开发中一个常见的任务,特别是在Java后端开发中,它涉及到数据模型的设计和数据访问层的操作。实体类(Entity Class)通常代表数据库中的表,而DTO(Data Transfer Object)则用于在不同...

    Dto转实体类 AutoMapper

    通过以上步骤,我们可以轻松地在Dto和实体类之间进行转换,而无需编写繁琐的手动映射代码。AutoMapper的使用使得对象间的转换变得简单且易于维护,是.NET开发中不可或缺的工具之一。在`ConsoleApplication1`这个项目...

    简单的EntityFramework4.3+三层+DTO 简单Demo

    简单的EntityFramework4.3+三层+DTO,如果需要简化版的,我的资源里有一个不含DTO的版本。 这个Demo的主要功能是: 1、实体类的创建、复杂...5、实体类与DTO的转换,Mapping配置 需要的DLL文件都在packages文件夹中

    EF+Mapper结合使用实现Dto到实体类再到数据的(框架模型基础实现)

    总结起来,通过EF+Mapper的结合使用,我们可以轻松地在DTO和实体类之间进行数据转换,从而在业务逻辑和数据存储之间建立了一个清晰的边界。这使得我们的代码更易于维护,同时也减少了因直接操作数据库对象而可能引发...

    自己实现的Android中将任意实体类(Entity、vo、dto、Model)对象(object)转为Json字符串的一个类

    这个工具类“JsonUtil”是为了帮助开发者快速将Android中的实体类对象(Entity、VO、DTO、Model)转化为JSON字符串,方便进行网络请求或存储数据。 一、JsonUtil类的设计与实现 JsonUtil通常是一个静态类,包含一...

    oracle实体类代码生成器

    5. **注释和序列化支持**:为了提高代码可读性和与其他框架的兼容性,生成的实体类可能还包括JPA的注解(如@Entity、@Id等)和Java Serializable接口。 6. **文件输出**:最后,工具将生成的实体类代码保存到指定的...

    idea复制实体类工具

    除了基本的实体类生成,这个工具可能还支持一些高级特性,如生成JPA的Repository接口、DTO转换类或者Service接口等,这些都是在实际开发中经常用到的。通过这种方式,开发者可以快速构建完整的数据访问层,从而将更...

    EntityFrameworkCore.zip

    在EF Core中,当需要将数据库中的实体类转换为更简单的对象以供前端使用或跨服务通信时,这种映射工具非常有用。 在.NET开发中,使用EF Core的优势包括: 1. **简化数据库操作**:EF Core提供了一个 LINQ 查询接口...

    EntityFramework.zip

    总结来说,"EntityFramework.zip"中的资源很可能是关于如何在.NET环境中使用Entity Framework进行数据库操作和实体与DTO之间映射的实例和指南。对于.NET开发者来说,理解并掌握这些概念和技术对于提升开发效率和代码...

    实体类的简单基础应用 List 与 JSON 互相转换

    在C#编程中,实体类(Entity Class)是用于封装数据的对象,它们通常是数据库表的映射,也可以作为数据传输对象(DTO)。本教程将深入探讨实体类在实际项目中的简单基础应用,以及如何实现List与JSON之间的互相转换...

    C#实体类代码生成器

    在软件开发过程中,尤其是对于大型项目或基于三层架构的应用,编写和维护大量的实体类代码是一项繁琐的任务。实体类是业务逻辑层与数据访问层之间的桥梁,用于封装数据对象并提供数据操作的方法。此生成器可以显著...

    实体类生成器

    5. **集成**:生成的实体类文件可以自动添加到项目中,开发者可以直接在项目中使用这些类进行数据操作。 实体类生成器的使用能带来诸多好处,包括减少手动编码的工作量,提高代码一致性,以及降低由于手动输入错误...

    mybatis-generator-core自动生成实体类、DAO接口和Mapping映射文件

    1. **实体类(Entity Class)**:这些类代表数据库中的表,包含了表字段对应的属性,通常带有getter和setter方法,用于封装数据。 2. **DAO接口(Data Access Object Interface)**:定义了对数据库进行操作的方法...

    EntityFramework4.3+三层 简单Demo(不喊DTO)

    简单的EntityFramework4.3+三层,这个版本不含DTO,如果需要有DTO的,请到我的资源里找。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、默认...

    使用 LINQ To SQL 和Entity Framework实现灵活的数据访问

    为了与 LINQ to SQL 或 Entity Framework 生成的实体保持一致,我们可以选择不使用这些自动生成的实体类,而是创建自己的 DTO 类,这些 DTO 类只包含必要的属性,比如 ID、名称等。 ##### 3. 跟踪实体状态 在使用 ...

    java.lang.ClassCastException

    在使用EJB(Enterprise JavaBeans)时,如果在实体Bean之间或实体Bean与DTO之间进行类型转换不当,也可能触发`ClassCastException`。 3. **DTO**:DTO是一种设计模式,用于在系统边界之间传输数据,避免了直接暴露...

    Swagger_Dto_to_Entity_Mapstruct

    标题中的"Swagger_Dto_to_Entity_Mapstruct"是一个项目或教程,旨在展示如何使用MapStruct库在Java中将Swagger定义的数据传输对象(DTOs)映射到实体类。MapStruct是一个代码生成库,它极大地简化了对象到对象映射的...

    mybaties生成实体

    1. 对象关系映射:实体类作为数据传输对象(DTO),在业务层与数据层之间传递数据,实现ORM(Object-Relational Mapping)。 2. SQL查询映射:在Mapper接口的XML配置文件中,可以使用实体类属性名直接编写SQL,如 `$...

Global site tag (gtag.js) - Google Analytics