博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实体映射工具 MapStruct的简单应用
阅读量:4181 次
发布时间:2019-05-26

本文共 2556 字,大约阅读时间需要 8 分钟。

MapStruct(https://mapstruct.org/ )是一种代码生成器,它极大地简化了基于”约定优于配置”方法的Java bean类型之间映射的实现。生成的映射代码使用纯方法调用,因此快速、类型安全且易于理解。

一、pom.xml的maven 依赖

1.3.1.Final
org.mapstruct
mapstruct
${org.mapstruct.version}
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
1.8
1.8
org.mapstruct
mapstruct-processor
${org.mapstruct.version}
org.projectlombok
lombok
1.16.10

二、业务代码

2.1 实体类

package com.demo;import lombok.Data;import java.util.Date;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2020/9/29 9:40 * @description */@Datapublic class PersonDO {
private Integer id; private String name; private int age; private Date birthday; private String gender;}
package com.demo;import lombok.Data;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2020/9/29 9:43 * @description */@Datapublic class PersonDTO {
private String userName; private Integer age; private String birthday; private String gender;}

2.2 定义映射接口

package com.demo;import org.mapstruct.Mapper;import org.mapstruct.Mapping;import org.mapstruct.factory.Mappers;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2020/9/29 9:30 * @description */@Mapperinterface PersonConvert {
PersonConvert INSTANCE = Mappers.getMapper(PersonConvert.class); @Mapping(source = "name", target = "userName") @Mapping(target = "birthday", source = "birthday",dateFormat = "yyyy-MM-dd HH:mm:ss") PersonDTO do2dto(PersonDO person);}

2.3 测试类

package com.demo;import java.util.Date;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2020/9/29 9:21 * @description */public class MapStructDemo {
public static void main(String[] args) {
PersonDO personDO = new PersonDO(); personDO.setName("xiaobu"); personDO.setAge(26); personDO.setBirthday(new Date()); personDO.setId(1); personDO.setGender("男"); PersonDTO personDTO = PersonConvert.INSTANCE.do2dto(personDO); System.out.println(personDTO); }}

错误信息.jpg

解决方案: 在pom.xml里面添加lombok依赖

参考:

转载地址:http://szgai.baihongyu.com/

你可能感兴趣的文章
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>