- 浏览: 43958 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dl96200:
辛苦了。。感谢感谢 啊
dom读取xml与写入xml -
kaven1989:
太好了,楼主辛苦了
dom读取xml与写入xml -
osacar:
效果如何?性能?
java 生成缩略图
springMVC Control
实体对象
工具类
@RequestMapping(value = "/save", method = RequestMethod.POST) public String save(RedirectAttributes redirectAttr, GoodsSupplierPrice gsp, @ModelAttribute(App.SESSION_USER_KEY) SessionUser sessionUser) { if (gsp.getId() == null) { gsp.setOperUserId(sessionUser.getUserId()); this.goodsSupplierPriceService.save(gsp); operateLogService.insert("insert", "插入-采购报价SKU:"+gsp.getGoodsSku(), sessionUser.getUserId(), "采购管理", "采购报价管理"); } else { GoodsSupplierPrice gspOld = this.goodsSupplierPriceService.load(gsp.getId()); try{ String editMsg= CommonUtil.getEditMsg(gspOld,gsp,gsp.getClass().getName()); this.goodsSupplierPriceService.update(gsp); operateLogService.insert("update", "更新-采购报价SKU:"+gsp.getGoodsSku()+"["+editMsg+"]", sessionUser.getUserId(), "采购管理", "采购报价管理"); }catch(Exception e){ e.printStackTrace(); } }
实体对象
import java.math.BigDecimal; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonFormat; import com.xuanfeiyang.annotations.Column; public class GoodsSupplierPrice { private Integer id; private Integer supplierId; @Column(Desc = "SKU") private String goodsSku; @Column(Desc = "商品名称") private String goodsName; @Column(Desc = "商品单位") private String goodsUnit; @Column(Desc = "采购量从") private Integer countMin; @Column(Desc = "采购量到") private Integer countMax; @Column(Desc = "报价") private BigDecimal price; @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd") private Date startDate; @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd") private Date endDate; @Column(Desc = "采购周期") private Short buyPeriod; @Column(Desc = "优先级") private Short priority; @Column(Desc = "备注") private String note; private Integer operUserId; private Date createdTime; private Date lastUpdatedTime; // 附件字段:供应商名称 private String supplierName; // 附件字段:维护人名称 private String operUserName; public String getSupplierName() { return supplierName; } public void setSupplierName(String supplierName) { this.supplierName = supplierName; } public String getOperUserName() { return operUserName; } public void setOperUserName(String operUserName) { this.operUserName = operUserName; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getSupplierId() { return supplierId; } public void setSupplierId(Integer supplierId) { this.supplierId = supplierId; } public String getGoodsSku() { return goodsSku; } public void setGoodsSku(String goodsSku) { this.goodsSku = goodsSku == null ? null : goodsSku.trim(); } public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName == null ? null : goodsName.trim(); } public String getGoodsUnit() { return goodsUnit; } public void setGoodsUnit(String goodsUnit) { this.goodsUnit = goodsUnit == null ? null : goodsUnit.trim(); } public Integer getCountMin() { return countMin; } public void setCountMin(Integer countMin) { this.countMin = countMin; } public Integer getCountMax() { return countMax; } public void setCountMax(Integer countMax) { this.countMax = countMax; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } public Short getBuyPeriod() { return buyPeriod; } public void setBuyPeriod(Short buyPeriod) { this.buyPeriod = buyPeriod; } public Short getPriority() { return priority; } public void setPriority(Short priority) { this.priority = priority; } public String getNote() { return note; } public void setNote(String note) { this.note = note == null ? null : note.trim(); } public Integer getOperUserId() { return operUserId; } public void setOperUserId(Integer operUserId) { this.operUserId = operUserId; } public Date getCreatedTime() { return createdTime; } public void setCreatedTime(Date createdTime) { this.createdTime = createdTime; } public Date getLastUpdatedTime() { return lastUpdatedTime; } public void setLastUpdatedTime(Date lastUpdatedTime) { this.lastUpdatedTime = lastUpdatedTime; } }
工具类
/** * 数据修改对比统计 * @param oldT 修改前 * @param newT 修改后 * @param className 类名 * @param <T> * @return * @throws Exception */ public static <T> String getEditMsg(T oldT, T newT, String className) throws Exception{ Class onwClass = Class.forName(className); StringBuffer editMsg = new StringBuffer(); Field[] fields = onwClass.getDeclaredFields(); for (Field f : fields) { // 过滤 static、 final、private static final字段 if (f.getModifiers() == 16 || f.getModifiers() == 8 || f.getModifiers() == 26) { continue; } com.xuanfeiyang.annotations.Column annotationColumn = f.getAnnotation(com.xuanfeiyang.annotations.Column.class); if (annotationColumn == null) { continue; } Object oldV = ReflectUtil.getValueMethod(oldT,f.getName(),f.getType()); Object newV = ReflectUtil.getValueMethod(newT,f.getName(),f.getType()); if (newV != null && !newV.equals(oldV) && StringUtils.isNotBlank(newV.toString())) { editMsg.append(annotationColumn.Desc() + " 从 " + oldV + "修改成" + newV + "<br>"); } } return editMsg.toString(); }
发表评论
-
java工程读取本地文件方法
2022-05-02 13:42 380读本地工程文件 resources 读本地工程文 ... -
Java 播放MP3 使用第三方解决方案 (jl1.0.jar)
2021-11-21 17:13 680package com.xu.musicplaye ... -
Java中对比两个对象中属性值[反射、注解]
2021-11-11 15:42 256在Java中通常要比较两个对象在修改前与修改后的值是否相同,一 ... -
Feign踩坑记录:JSON parse error - 简书-feign报文过大异常解决
2021-11-02 17:51 2013Feign踩坑记录:JSON parse error - 简书 ... -
RowKeyGenUtil 卡券生成
2020-03-17 10:01 565package com.njupt.passbook. ... -
java jdk1.8 当前时间 加小时 换时间翟输出
2020-03-03 11:08 597LocalDate today = LocalDat ... -
List集合按指定的数量分隔,用于sql in 查询最大只支持1000
2017-05-06 09:36 958List<Integer> ids=ne ... -
List排序
2016-12-28 16:39 388package demo.main; impor ... -
java压缩图片大小
2016-11-12 18:07 949package com.xxq.util; im ... -
数组拆分
2016-11-09 18:11 436import java.util.ArrayLis ... -
java异常处理
2016-08-02 17:41 562数据重复异常类 /** * 数据重复异常 * ...
相关推荐
在web开发中,经常遇到...而使用hibernate,它的修改是基于对象的,如果用户修改的字段非常多,但是我们并不知道用户到底修改了那个字段,这时候就需要一个一个的去判断,因此非常耗时,所以我写了个工具类来帮助大家!
`ObjectCompareUtil.java`很可能就是一个工具类,提供了静态方法来比较两个对象的属性差异。 在`ObjectCompareUtil`中,可能会有如下的核心方法: ```java public static <T> Map, DiffResult> compareObjects(T ...
Java 反射机制详解 - 设置对象的属性值 Java 反射机制是 Java 语言中一个非常强大的功能,它允许程序在运行时检查和修改自身的结构和行为。在这篇文章中,我们将详细介绍如何使用 Java 反射机制来设置对象的属性值...
java反射获取一个object属性值代码解析 java反射获取一个object属性值代码...java反射获取一个object属性值代码解析是java编程中一个非常重要的知识点,可以动态地获取一个对象的属性值,无需提前知道该对象的类型。
4.如何使用反射机制设置对象的属性值 5.反射机制的优缺点和使用场景 6.如何处理反射机制中的异常 这篇文章展示了Java反射机制的基本概念和使用方法,并提供了一个实用的例子来展示如何使用反射机制来获取对象的属性...
下面将详细解释这两个概念。 1. 反射获取属性: 在Java中,`java.lang.reflect`包提供了`Class`类来获取类的信息,包括其属性(字段)。例如,你可以通过以下步骤获取类的属性: ```java Class<?> clazz = ...
假设我们有一个`Calculator`类,其中包含`add`和`subtract`两个方法。在不直接引用`Calculator`类或其方法的情况下,我们可以使用以下步骤动态调用这些方法: - 获取`Calculator`类的`Class`对象:`Class<?> ...
最后,我们可以输出第一个实体类的`StrTemp`属性值来验证是否成功。 ```csharp Console.WriteLine(cs[0].StrTemp); ``` #### 总结 通过上述步骤,我们已经成功地将`DataSet`中的数据映射到了实体类中。这种方法...
在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以深入探讨两个主要主题:Java Bean的遍历和注解的应用。 1. **Java Bean遍历**: - **反射机制**:遍历Java Bean通常涉及使用Java的反射...
在.NET框架中,自定义属性(Custom Attributes)是一种元数据,可以附加到代码的各种元素上,如类、方法、字段等,提供额外的信息用于运行...在实际项目中,结合这两个特性,可以有效地提高代码的可维护性和可重用性。
以下是如何使用反射来获取`List`中对象属性值的步骤: 1. 遍历`List`:使用`for`循环遍历列表中的每一个元素。 2. 获取字段:使用`list.get(i).getClass().getDeclaredFields()`获取当前对象的所有声明的字段(包括...
用于判断修改后的实体修改了哪些内容,与原实体各个属性的值有哪些变化
我们可以创建一个User类,包含id、name和age字段,然后用DOM4J解析XML,通过反射创建User对象并设置属性。这个过程可以封装成一个通用的方法,以适应不同结构的XML数据转换。 总之,DOM4J提供了强大且易用的工具来...
在上述代码中,我们定义了一个名为`ChangeValue`的类,该类包含一个私有字符串变量`myValue`和两个公共方法:构造函数和`WriteLine`方法。`Test`类中的`Main`方法则演示了如何使用反射来修改`ChangeValue`类实例中的...
动态修改查询属性值是反射的另一个关键应用。我们可以使用`getDeclaredField()`或`getField()`方法获取类的字段,然后调用`setAccessible(true)`允许访问私有字段,最后通过`set()`方法设置字段的值。同样,`get()`...
DOM4J和Java反射是Java开发中两个非常重要的技术,它们在处理XML文档和动态对象操作方面发挥着关键作用。在此,我们将深入探讨这两个概念及其在实现Bean与XML之间的转换中的应用。 首先,DOM4J是一个Java库,专门...
Java编程语言中,枚举和反射机制是两个重要的特性,它们在不同的场景下有着独特的用途。下面我们将详细探讨这两个主题。 一、枚举 枚举(Enum)在Java中用于定义一组固定数量的值,这些值可以作为常量使用。枚举...
`set(Object obj, Object value)`方法接受两个参数,第一个是目标对象,第二个是要设置的新值。 在描述中提到的"普通方式无法修改私有成员变量的值,但通过反射机制可以实现",正是指的以上这一过程。这种方式虽然...