创建人/创建时间/最后修改人/最后修改时间封装处理
来源:互联网 发布:过山车大亨1 mac 编辑:程序博客网 时间:2024/06/05 17:33
一般的项目中的表都有这四个字段,创建人、创建时间、最后修改人、最后修改时间。便于我们运营过程中找到 责任人。一般情况下我们需要在service add update remove处加上将这四个字段的值set进去,这样的话代码有点冗余,不便于统一管理,我们可以这样封装。
第一种办法
所有JAVABean或POJO或MODEL实体继承一个Base实体,在Base实体中的get方法里返回相关。这样的话也方便将来序列化。但继承了就会有依赖。
第二种办法
通过反射填充这四个字段。如下代码:
/** * 通过反射填充表字段。JAVA实体类中的属性:创建人、创建时间、最后修改人、最后修改时间。开发人员只需要在需要set的代码处调用改方法即可。 * @author Belen */public abstract class InitDataUtil {/** * 自动填充为"对象o"填充创建人,创建时间,最后修改人,最后修改时间. * @author Belen * @date 2016-6-29 */public static void fill(Object o){fillAdd(o);fillEdit(o);}/** * 自动填充为"对象o"创建人,创建时间 * @author Belen * @date 2016-6-29 */public static void fillAdd(Object o){Class<?> c = o.getClass();Field createPersonField = searchFields(c.getDeclaredFields(), "createPerson");try {if (createPersonField != null) {createPersonField.setAccessible(true); // 取消访问检查createPersonField.set(o, USERNAME); // 获取当前登录人用户名}Field createTimeField = searchFields(c.getDeclaredFields(), "createTime");if (createTimeField != null) {createTimeField.setAccessible(true); // 取消访问检查createTimeField.set(o, new Date());}} catch (Exception e) {throw new RuntimeException(e);} }/** * 自动填充为"对象o"最后修改人,最后修改时间. * @author Belen * @date 2016-6-29 */public static void fillEdit(Object o){Class<?> c = o.getClass();Field lastModifyPersonField = searchFields(c.getDeclaredFields(), "lastModifyPerson");try {if (lastModifyPersonField != null) {lastModifyPersonField.setAccessible(true); lastModifyPersonField.set(o, USERNAME); // 获取当前登录人用户名}Field lastModifyTimeField = searchFields(c.getDeclaredFields(), "lastModifyTime");if (lastModifyTimeField != null) {lastModifyTimeField.setAccessible(true); lastModifyTimeField.set(o, new Date());}} catch (Exception e) {throw new RuntimeException(e);} }// Helpers for fetchers of one field, method, or constructorprivate static Field searchFields(Field[] fields, String name) {String internedName = name.intern();for (int i = 0; i < fields.length; i++) {if (fields[i].getName() == internedName) {return fields[i];}}return null;}}
0 0
- 创建人/创建时间/最后修改人/最后修改时间封装处理
- 文件最后修改时间
- 获取文件创建时间、最后修改时间、访问时间
- pb9获取文件创建时间、最后修改时间及设置最后修改时间的方法
- C++ win环境修改文件创建时间、最后的修改时间和最后的访问时间
- Java读取文件创建时间和最后修改时间
- Java读取文件创建时间和最后修改时间
- 显示页面最后修改时间
- 第一章 日期时间效果--最后修改时间
- 查看数据最后修改时间,建立时间
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- java获得文件的创建和最后访问修改时间
- 创建文件,并格式化输出最后修改时间
- MASM32编程获取文件最后修改时间
- java 得到文件最后的修改时间
- 查询存储过程的最后修改时间
- 查出PT最后一次修改时间
- 设置listContrl中指定行的颜色
- Ubuntu 12.04中MyEclipse 10.6+下载+安装+破解
- Haskell函数式编程基础习题
- 从C开始_结构体_结构指针
- Python下使用tarfile模块来实现文件归档压缩与解压
- 创建人/创建时间/最后修改人/最后修改时间封装处理
- 在不公平的世界里,证明自己!
- MySQL-python使用
- boost::enable_shared_from_this的部分实现研究
- 马云等语录
- Boost 库 Enable_shared_from_this 实现原理分析
- 学习笔记3-Bootstrap CSS 【转载整理->原创】
- Python模块学习 ---- zlib 数据压缩
- 开发swift软件的快速方法--1024swift