最近写了一个书城项目,由于使用的是传智播客的教材,不可避免的使用了传智播客的工具包(实际上是懒得写,而且自己也不会打包)所以在这里对工具包进行一个总结,以便于以后的学习。

一。首先是第一个文件夹---commons

该文件夹下有两个工具类一个是CommonUtils类,另一个是DateConverter类;

1.CommonUtils

public class CommonUtils {/*** 返回一个不重复的字符串* @return*/public static String uuid() {return UUID.randomUUID().toString().replace("-", "").toUpperCase();}/*** 把map转换成对象* @param map* @param clazz* @return* * 把Map转换成指定类型*/@SuppressWarnings("rawtypes")public static <T> T toBean(Map map, Class<T> clazz) {try {/** 1. 通过参数clazz创建实例* 2. 使用BeanUtils.populate把map的数据封闭到bean中*/T bean = clazz.newInstance();ConvertUtils.register(new DateConverter(), java.util.Date.class);BeanUtils.populate(bean, map);return bean;} catch(Exception e) {throw new RuntimeException(e);}}
}

该类一共有两个方法,uuid()和toBean()方法;

uuid()用于生成一个不重复的字符串,以下是引用部分

UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。

toBean()是把map对象转化为指定类型,在项目中一般这样使用:

User form = CommonUtils.toBean(request.getParameterMap(),User.class);(此处用于封装表单数据)

clazz.newInstance();用来创建一个实例,弱类型,效率低;

在使用Bean对象接收数据时,其中populate、copyProperties方法可以正常使用,但date数据类型会出现异常,不支持java.util.Date类型,所以使用ConvertUtils.register进行转换处理,转换成string类型;

BeanUtils.populate();一次为多个属性赋值。

2.DateConverter

该方法用于转换数据类型;

package cn.itcast.commons;import java.text.ParseException;
import java.text.SimpleDateFormat;import org.apache.commons.beanutils.Converter;/*** 把String转换成java.util.Date的类型转换器* @author qdmmy6**/
public class DateConverter implements Converter {@SuppressWarnings("rawtypes")@Overridepublic Object convert(Class type, Object value) {if(value == null) return null;//如果要转换成值为null,那么直接返回nullif(!(value instanceof String)) {//如果要转换的值不是String,那么就不转换了,直接返回return value;}String val = (String) value;//把值转换成String// 使用SimpleDateFormat进行转换SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//定义字符串模板try {return sdf.parse(val);//开始转换} catch (ParseException e) {throw new RuntimeException(e);}}
}

代码注释已经很详细不再赘述。

关于itcast-tools工具包的详解(一. commons)相关推荐

  1. 在VM虚拟机中 CentOS7安装VMware Tools(超级详解)

    ** 在VM虚拟机中的CentOS7的linux系统中安装VMware Tools(超级详解) ** 一.明白为什么这么做? 为什么要安装vmtools? vmtools 安装后,可以让我们在wind ...

  2. VMware里Ubuntu-14.04-desktop的VMware Tools安装图文详解

    不多说,直接上干货! 总的来说,根据分为三个步骤. 步骤一: 点击 :虚拟机-–>安装VM tools 然后发现桌面会跳出如下问题: 客户机操作系统已将 CD-ROM 门锁定,并且可能正在使用 ...

  3. Discuz!论坛Tools工具箱功能详解

    Tools工具箱是为了方便广大站长日常维护论坛等程序而出的工具.工具箱只有单一的一个文件,便于上传和使用.比如找回管理员.修复数据库.导入数据库备份等都是大家常用的功能.下面笔者就以Comsenz发布 ...

  4. 使用驱动器f:中的光盘之前需要将其格式化_mac虚拟光驱Daemon Tools高级功能详解—光盘刻录...

    DAEMON Tools是一种紧凑而智能的解决方案,用于在Mac上安装不同类型的虚拟光盘,并允许您创建ISO,MDX和MDS / MDF图像.通过该程序,系统可识别虚拟图像,并允许您像使用普通光盘一样 ...

  5. 【Tools】VMware虚拟机三种网络模式详解和操作

    00. 目录 文章目录 00. 目录 01. VMware虚拟机三种网络模式 02. Bridged(桥接模式) 03. NAT(地址转换模式) 04. Host-Only(仅主机模式) 05. 参考 ...

  6. dsniff 和 Ettercap 和 bettercap 详解 - 网络嗅探工具包

    官网:https://www.monkey.org/~dugsong/dsniff/ linux 嗅探工具 Dsniff 详解:https://wenku.baidu.com/view/61a1788 ...

  7. java ant解压缩_java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解

    java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解 发布于 2020-4-7| 复制链接 摘记: java ant包中的org.apache.tools.zip实现 ...

  8. Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)

    ↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 本文不查错,三连送书 最近很多读者想学习使用python来制作游戏,其中最经典的工具包就是Pygame ,如果单 ...

  9. Pro Tools购买、升级、升级计划续期详解

    Pro Tools购买.升级.升级计划续期详解 2018-03-13神游技术人生之AVID音频 本文介绍Pro Tools软件的产品类型和差异,购买时如何衡量和选择? 升级计划是什么? 如何续订或恢复 ...

最新文章

  1. 静态方法和实例化方法的区别 -转载
  2. 金融领域下的数据挖掘算法应用:AdaBoost模型摩天
  3. word无法打开请去应用商店_word软件是什么?word文档是什么?可以用来干什么?...
  4. 小米向集团3904名员工授予7023万股票,最小入选员工仅24岁
  5. Ubuntu学习日记--Lesson10:gcc、make、makefile、cmake、cmakelists区别
  6. NSTimer的使用
  7. 《30天学习30种新技术》-Day 15:Meteor —— 从零开始创建一个 Web 应用
  8. clockworkmod CWM简单介绍
  9. 数据结构之线性表----一文看懂顺序表、单链表、双链表、循环链表
  10. 如果编程语言是一门武功绝学,那么汇编、C语言······
  11. 复大华韬会基因博物馆项目论证会在北京大学举行
  12. 柳比歇夫的时间管理法—《可以量化的管理学》
  13. 极路由b70路由器虚拟服务器,极路由B70刷固件详细步骤说明(整合其它坛友经验)-少走弯路,造福坛友...
  14. 性能起飞!驱动人生带你了解AMD FSR3.0及显卡驱动
  15. macOS忘记密码后如何修改密码
  16. 反游戏规则~触发5亿创设~引发3-6个跌停?
  17. 公开募集催生Namco Bandai(南梦宫万代)的预售实验
  18. rstudio协整检验代码
  19. 伪科学、骗科学、错误科学
  20. Apache Storm 2.0.0 LowLevel 新版

热门文章

  1. eruda.js 移动端调试神器使用教程(eruda)
  2. 借贷记账法下的账户对应关系_2015《会计基础》知识点:借贷记账法下的账户对应关系...
  3. plc和单片机及c语言区别,PLC与单片机的区别是什么?
  4. 小米电视微信投屏服务器出错,同一wifi下无法投屏怎么办 小米电视不能投屏的解决方法...
  5. matlab java mac_Matlab for mac卡顿、抛Java异常
  6. nginx-反向代理和负载均衡
  7. Erlang自动化编译组件说明
  8. java修改成绩_javaweb修改数学成绩
  9. 数据分析实战应用案例精讲-【概念篇】数据看板(附实战应用案例)
  10. 论文框架和目录一样吗_纯干货 | 如何写好一篇职称论文,建议收藏