当前位置: 首页 > 编程日记 > 正文

javabean实体类与实体类之间的快速转换

一、Dozer是什么?

dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样.
使用方法示例如下:

    // article(PO) -> articleVOArticleVO articleVO = dozerMapper.map(article, ArticleVO.class);

这段示例代码。将从数据库里面查询得到的PO对象article,转换为VO对象articleVO,转换过程将所有同名同类型的数据自动赋值给articleVO的成员变量,当然除了reader(因为PO里面没有reader数组数据)。转换需要写属性之间的映射么?不! 默认是根据属性名称来匹配的.
如果没有Dozer我们进行,对象之间的转换赋值,我们会怎么做?下面的这5行等于上面的一行。

articleVO.setId(article.getId());
articleVO.setAuthor(article.getAuthor());
articleVO.setTitle(article.getTitle());
articleVO.setContent(article.getContent());
articleVO.setCreateTime(article.getCreateTime());

二、使用Dozer进行实体类的转换:

首先引入依赖

    <dependency><groupId>net.sf.dozer</groupId><artifactId>dozer</artifactId><version>5.4.0</version></dependency>

注入一个工具类DozerBeanMapper 到上下文中,

    @Configurationpublic class DozerBeanMapperConfigure {@Beanpublic DozerBeanMapper mapper() {DozerBeanMapper mapper = new DozerBeanMapper();return mapper;}}

注入然后开始使用啦

        @Autowiredprotected Mapper dozerMapper;

在实际应用中,我们不只需要PO转VO,有时还需要List转List.写一个工具类,实现List转List

public class DozerUtils {static DozerBeanMapper dozerBeanMapper = new DozerBeanMapper();public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass){List destinationList = Lists.newArrayList();for (Iterator i$ = sourceList.iterator(); i$.hasNext();){Object sourceObject = i$.next();Object destinationObject = dozerBeanMapper.map(sourceObject, destinationClass);destinationList.add(destinationObject);}return destinationList;}
}

以上!

相关文章:

ATS程序功能和使用方法详解

转载自https://blog.zymlinux.net/index.php/archives/374 Apache Traffic Server的程序文件&#xff0c;与传统的服务器系统有大不同&#xff0c;这里我们将会对这些文件进行详细的解读&#xff0c;并尽可能的对程序的功能和基本用法、参数等进一步说明&#xff0c;以利于新入…

java 读取txt,java读取大文件

java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel; public class Test { public static void main(String[] args) throws Exception …

Spring Boot整合Spring Data JPA操作数据

一、 Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架&#xff0c;底层使用了 Hibernate 的 JPA 技术实现&#xff0c;可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能&…

常用Linux命令总结

常用Linux命令总结 2013-12-08 压缩为gz格式 gzip error_2018082217.log 解压gz格式 gzip -d error_2018082217.log.gz 不解压来搜索gz格式的文件中的匹配行内容 gunzip -c 不真正解压.gz文件&#xff0c;而是检查该文件&#xff0c;不会生成多余的文件 gunzip -c error_20…

调试uIP出现死机问题

在调试uIP&#xff0c;加入http功能时&#xff0c;调试出现死循环 原因是所加入的http文件中含有printf等输出函数&#xff0c;遇到这种情况&#xff0c;有2种解决方法&#xff1a; 1.Keil中勾选“Use MicroLIB” 2. //加入以下代码&#xff0c;支持printf函数&#xff0c;而…

html+spring boot简单的ajax数据传输实现

本篇讲解在前后端不分离情况下的htmlspring boot的项目数据传输实现 首先&#xff0c;后台我写了三个接口 package com.demo.ajax.controller;import com.demo.ajax.Entity.Person; import lombok.extern.slf4j.Slf4j; import org.jboss.logging.Param; import org.springfram…

Tafficserver旁路接入方案综述

转载自 https://blog.zymlinux.net/index.php/archives/821 随着宽带技术的加速普及&#xff0c;目前&#xff0c;几款高性能开源CDN方案在广大开源爱好团队的充分的测试、企业服务应用验证中破壳而出。实际这个地球的互联网用户都在知情与不知情之间使用了ATS的环保服务。这方…

url中去掉index.php,方便redirect()

01 配置文件 return Array( URL_MODEL > 2,); 02 index.php入口文件下面加入文件 .htaccess -->使用editplus-->另存为 <IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ i…

js校验复选框(多选按钮)是否被选中的方法

js校验复选框是否被选中的方法 方法一&#xff1a;&#xff08;使用下标进行标记&#xff09; if ($("#checkbox-id")get(0).checked) {// do something }方法二&#xff1a;&#xff08;对被选中的进行操作&#xff09; if($(#checkbox-id).is(:checked)) {// do…

ATS插件开发基础

转载自 https://blog.zymlinux.net/index.php/archives/540 ATS插件开发需要提前了解ATS的插件的一些设计思想&#xff0c;以及系统提供的一些不同方向。我们将会介绍ATS的基础开发知识&#xff0c;以利于后续的插件开发课程讲解。 ATS的SDK文档&#xff0c;是了解ATS的核心设…

NET基础(3):is 和 as 操作符

在C#语言中进行类型转换的另外一种方式是使用is和as操作符。is检查对象是否兼容于指定类型&#xff0c;返回Boolean值true或false。注意&#xff0c;is操作符永远不抛出异常&#xff0c;例如以下代码&#xff1a; Object o new Object();Boolean b1 (o is Object); //返回…

制作大白菜PE盘

大白菜是一款功能非常强大的U盘启动盘制作工具&#xff0c;通过大白菜我们可以把U盘做成可以引导电脑启动的启动盘&#xff0c;同时可以用于装系统或维护系统&#xff0c;虽然制作方法非常简单&#xff0c;不过还是有很多人不懂如何制作大白菜U盘启动盘&#xff0c;这两天我刚好…

为方便ATS管理建立的一些命令别名

转载自https://blog.zymlinux.net/index.php/archives/129 玩ats经常需要切换目录什么感觉敲得麻烦了就建立了一些命令别名&#xff0c;就方便多了。 在用户目录下的.bashrc文件中加入以下内容&#xff1a; alias alogcd /usr/local/var/log/trafficserver;pwd alias atscd /us…

short s1 = 1; s1 = s1 + 1;有错而short s1 = 1; s1 += 1正确

这个问题以前碰到过&#xff0c;也研究过&#xff0c;发表一下&#xff1a; 如果你认为表达式&#xff08;x i&#xff09;只是表达式&#xff08;x x i&#xff09;的简写方式&#xff0c;这并不准确。这两个表达式都被称为赋值表达式。第二个表达式使用的是简单赋值操作…

pom文件中引入常用的maven仓库

给大家分享几个maven仓库&#xff0c;如果本地总是下载很慢的话可以尝试换一下仓库或者多加几个。可以直接拖放在pom.xml中使用。 阿里云仓库 <mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.ali…

ats新手学习参考

转载自https://blog.zymlinux.net/index.php/archives/129 首先申明本人是个实实在在的菜鸟&#xff0c;现在也只是搭建起来ats玩玩简单的&#xff0c;写本文只是为了给完全的小白一个参考而已。 本人刚开始接触ats的时候&#xff0c;从ats安装到配置也遇到了很多基本的问题&am…

[svc]磁盘接口与RAID

一 磁盘接口 IDE 传统家用: /dev/hda1 SISC 传统服务器: /dev/sdb1 SATA 现在家用 SAS 现在服务器用 FC(光纤通道) 高级服务器 注意: 分区编号,1-4只能给主分区或扩展分区使用,逻辑分区是基于扩展分区来搞的,编号从5开始. MBR分区参考 现在计算机性能瓶颈往往在硬盘: …

条形码?二维码?生成、解析都在这里!

二维码生成与解析 一、生成二维码 二、解析二维码 三、生成一维码 四、全部的代码 五、pom依赖 直接上代码&#xff1a; 一、生成二维码 public class demo {private static final String path1"D:\\code.jpg";private static void qr(String text,int width,int w…

异步预热在线视频实现

转载自https://blog.zymlinux.net/index.php/archives/100 毕业之际给学校搭建了基于ATS的正向代理缓存服务器&#xff0c;专门用来处理优酷土豆等在线视频流量。通过改写一个浏览器做成在线视频专用浏览器&#xff0c;内置了ATS的代理设置。 用php配合memcacheq和小脚本实现了…

文本输入框、密码输入框

当用户要在表单中键入字母、数字等内容时&#xff0c;就会用到文本输入框。文本框也可以转化为密码输入框。 语法&#xff1a; <form><input type"text/password" name"名称" value"文本" /> </form> 1、type&#xff1a; 当t…

Linux安装mysql,一步到位!

今天在腾讯云上面买了一个服务器&#xff0c;想要把自己的项目部署一下&#xff0c;就要安装mysql&#xff0c;以下是我的安装步骤,在网上有很多人把install敲错了&#xff0c;还有的少-get&#xff0c;种种错误试完之后&#xff0c;我决定发一篇 sudo apt-get install mysql-…

Ubuntu 12.04安装firefox 26中的flash plugin方法

Ubuntu 12.04 64bit中安装firefox 26中的flash player插件的方法昨天, 有最新的firefox 26更新了,可是我在软件更新中无法下载到ubuntu官方源中的flash plugin,详细的情况可以参见如下网页,这个问题我一年前也遇到过,特记录下来,以备后来查阅.http://blog.sina.com.cn/s/blog_9…

内联式css样式,直接写在现有的HTML标签中

CSS样式可以写在哪些地方呢&#xff1f;从CSS 样式代码插入的形式来看基本可以分为以下3种&#xff1a;内联式、嵌入式和外部式三种。这一小节先来讲解内联式。 内联式css样式表就是把css代码直接写在现有的HTML标签中&#xff0c;如下面代码&#xff1a; <p style"col…

Linux下安装Java8

Linux(ubuntu)下Java8安装 1.下载jdk8 这个看大家了&#xff0c;linux版本的就可以 2.创建jvm文件夹 在根目录下创建名为jvm的文件夹&#xff08;在哪里创建看个人&#xff09; $ sudo mkdir jvm3.将下载的包解压到jvm文件夹下 $ sudo tar zxvf 压缩包路径/名字 -C /jvm…

RTMFP协议

RTMFP是Adobe公司开发的一套新的通信协议&#xff0c;该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信。用Adobe AIR框架开发的程序也可以用此协议来发布直播、实时信息。  通过使用RTMFP, 那些原来直播、实时通信的应用&#xff0c;比如社区、音视频聊天和多人…

CodeForces 595A

题目链接&#xff1a; http://codeforces.com/problemset/problem/595/A 题意&#xff1a; 一栋楼&#xff0c;有n层&#xff0c;每层有m户&#xff0c;每户有&#xff12;个窗户&#xff0c;问这栋楼还有多少户没有睡觉&#xff08;只要一个窗户灯亮就代表这户没有睡觉&#x…

将Eclipse中Web项目打成war包

将Eclipse中Web项目打成war包 请按如下操作即可&#xff1a;

测试代码发布到博客效果(Windows Live Writer发布)

测试代码发布到博客效果(Windows Live Writer发布) public class SwitchCase {/*** 1、switch后面的表达式为常量表达式,类型只能是可以转化为int、enum(1.6)、String(1.7)的类型* 2、可以转化为int类型的数据类型有&#xff1a;byte、short、int、char* 3、boolean类型的数据类…

设置腾讯云linux服务器中 MySQL 允许远程访问

申请了一台linux腾讯云服务器&#xff0c;想要把数据库搭建在上面&#xff0c;本地的Windows直接可以访问 以下就是具体的操作流程&#xff0c;首先你需要安装好一个mysql&#xff0c;安装方法–>mysql安装(Linux) 接着就开始操作咯&#xff1a; 一、开启 MySQL 远程访问权…

js 判断js,css是否引入,确保不重复引入

js 判断js,css是否引入&#xff0c;确保不重复引入 (2009-10-31 21:33:44) 转载▼标签&#xff1a; 杂谈 分类&#xff1a; js基本原理&#xff1a;function loadjscssfile(filename, filetype){if (filetype"js"){ //if filename is a external JavaScript filev…