public String DifferentOfTwoVO(String empName,GbsExtendedVO oldVO,GbsExtendedVO newVO){
String str=empName;
String nullStr= empName;
if(oldVO==null){
str=str+"添加数据:";
nullStr=nullStr+"添加数据:";
try {
Class clazz = newVO.getClass();
Field[] fields = newVO.getClass().getDeclaredFields();
int i=1;
for (Field field : fields) {
if("serialVersionUID".equals(field.getName())||
"creator".equals(field.getName())||
"creatorName".equals(field.getName())||
"createTime".equals(field.getName())){
continue;
}
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
Method getMethod = pd.getReadMethod();
Object o2 = getMethod.invoke(newVO);
if(o2 == null){
continue;
}else{
if(i!=1){
str+=";";
}
str+=i+";字段名称"+field.getName()+"的新值:"+o2;
i++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
str=str+"修改数据:";
nullStr=nullStr+"修改数据:";
try {
Class clazz = newVO.getClass();
Field[] fields = newVO.getClass().getDeclaredFields();
int i=1;
for (Field field : fields) {
if("serialVersionUID".equals(field.getName())||
"creator".equals(field.getName())||
"creatorName".equals(field.getName())||
"createTime".equals(field.getName())){
continue;
}
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
Method getMethod = pd.getReadMethod();
Object o1 = getMethod.invoke(oldVO);
Object o2 = getMethod.invoke(newVO);
if(o1==null && o2 == null){
continue;
}else if (o1!=null && o2 != null){
if (!o1.toString().equals(o2.toString())) {
if(i!=1){
str+=";";
}
str+=i+";字段名称"+field.getName()+",旧值:"+o1+",新值:"+o2;
i++;
}
}else if(o1==null && o2 != null){
if(i!=1){
str+=";";
}
str+=i+";字段名称"+field.getName()+",旧值:空"+",新值:"+o2;
i++;
}else if(o1!=null && o2 == null){
if(i!=1){
str+=";";
}
str+=i+";字段名称"+field.getName()+",旧值:"+o1+",新值:空";
i++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
if(nullStr.equals(str)){
return null;
}
return str;
}
分享到:
相关推荐
本篇将基于提供的"java-操作记录-对比操作前后不同"的jar文件,探讨如何在Java中实现操作记录,并通过代码比较来观察操作前后的差异。 首先,Java中的操作记录通常通过日志系统来实现,如Log4j、SLF4J、Logback等。...
该工具的核心功能是对两个对象实例进行深度比较,找出它们之间字段值的不同之处。这通常涉及到以下几个技术点: 1. **对象序列化与反序列化**:为了比较两个对象,工具可能需要先将它们转换成一致的数据格式,如...
在IT领域,模拟行为日志数据的生成是一项重要的任务,特别是在数据分析、系统测试、机器学习模型训练以及用户体验优化等场景中。日志数据是记录用户、系统或应用程序交互过程的重要载体,通过模拟这些数据,我们可以...
在实际使用中,开发者可能需要根据具体的数据库结构和需求对源码进行适当的修改,比如调整拼音转换的规则,优化数据库访问性能,或者增加错误处理和日志记录功能。对于想要学习Delphi编程或者汉字拼音转换技术的人来...
- 日志格式:不同系统和应用的日志格式各异,包括时间戳、事件类型、源、详细信息等字段。 2. **日志收集与管理**: - 日志收集:常用工具有Logstash、Fluentd等,它们可以从各种来源聚合日志数据。 - 日志存储...
本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...
6. 错误处理和日志记录:为了提高系统的健壮性,需要捕获并处理可能出现的异常,同时记录错误日志以便于调试和问题排查。 在这个项目中,wwwroot目录通常是Web应用的根目录,包含了HTML、CSS、JavaScript等前端资源...
* log:日志参数,用于记录生成 Word 文件的过程。 * dorDateType:日期类型字段参数,是一个列表,包含多个时间字段的名称和格式,例如(字段1,yyyy 年 MM 月 dd 日)。 三、日期类型字段处理 在生成 Word 文件时...
在本文中,触发器生成的消息被记录到事件日志中,便于系统管理员监控和分析。 10. 表设计: 创建了一个简单的表tablefortrigger,包含track、Lastname和Firstname三个字段,用于演示触发器的使用。track字段是一个...
这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...
日志文件通常包含以下字段: 1. 时间戳:记录事件发生的具体时间,便于排序和分析。 2. 优先级或严重性:如DEBUG、INFO、WARNING、ERROR等,表示事件的重要性。 3. 源或进程ID:标识事件来源,可能是一个程序、服务...
首先,创建一个用于记录日志的表,例如在Northwind数据库中创建名为`tablefortrigger`的表,包含`track`(自增主键)、`Lastname`和`Firstname`字段。接着,需要在`sysmessages`表中添加一条消息,这是一个可以接收...
- **程序日志**:由应用程序生成,记录程序运行时的状态、错误和警告信息。 2. **日志格式**: - **标准格式**:如Syslog(系统日志协议),广泛用于Unix/Linux和网络设备,包含优先级、时间戳、源主机名、消息...
- Kettle支持基于时间戳或唯一标识的增量抽取策略,通过比较源数据库与目标数据库的差异来抽取新增或更新的数据。 10. 数据清洗: - 包括去除重复行、空值处理、异常值检测等,Kettle提供了多种数据清洗步骤,...
《IPTV集成播控平台用户行为日志规范文件》是针对IPTV省市级播控平台用户行为记录的一种详细规范,旨在规范日志数据的生成、存储和传输,以便于与第三方BOSS系统或数据分析系统进行有效对接。文档内容涵盖了日志文件...
CICS日志对于系统管理员和开发人员来说至关重要,因为它记录了系统的运行状态、事务处理细节以及可能出现的错误信息。进行CICS日志分析可以帮助我们了解系统的健康状况,诊断问题,优化性能。 "Txt2Sheet"这个程序...
日志易V2.0提供了多种数据接入方式,以满足不同场景的需求。主要包括: 1. **日志易Agent**:这是一种推荐的方式,特别适合部署版用户。通过安装日志易Agent,可以方便地采集本地系统的日志数据,并将其传输到日志...
7. 错误处理与日志记录:为了确保生成的SQL代码准确无误,代码生成器需要有良好的错误检测机制和日志记录功能,方便开发者调试和定位问题。 8. 版本控制与持续集成:代码生成器应支持版本控制工具(如Git),并与...
现在,当我们需要在`ping`命令中添加时间戳并记录日志时,可以创建一个批处理文件(`.bat`文件),例如`ping_log.bat`,包含以下内容: ```batch @echo off for /L %%i in (1,1,10) do ( ping -n 1 目标IP | find ...
6. **错误处理和日志记录**:在实际开发中,为了确保程序的健壮性,需要添加异常处理机制,并记录详细的执行日志,以便于问题排查和性能优化。 7. **集成测试**:在实际部署前,需要编写测试用例,对Groovy脚本进行...