一个类似于jodd和Apache commons lang的Java工具类,hutool 2.11.4 发布

jopen 9年前

一个Java基础工具类,类似于joddApache commons lang的Java工具类。

简介

Hutool是一个工具包,我日常写项目的一些积累,参考了一些Apache Commons LangJODD里的一些写法,不过大部分还是自己写的,希望你看了之后会有所启发或者能给你工作中带来帮助。说实话我现在写代码已经离不开自己这个工具包了,叫做 Hutool也有“糊涂”之意,表示很多功能糊里糊涂就实现了。好吧,言归正传,说说里面一些好玩的方法(工具包中大部分是一些静态方法)。

设计哲学

Hutool的设计思想是尽量减少重复的定义,让项目中的util这个package尽量少,总的来说有如下的几个思想:

  1. 减少代码录入。
  2. 常用功能组合起来,实现一个功能只用一个方法。
  3. 简化Java API,原来需要几个类实现的功能我也只是用一个类甚至一个方法(想想为了个线程池我得new多少类……而且名字还不好记)
  4. 对于null的处理我没有可以回避,而是采取“你给我null我也给你返回null”这种思想,尽量不在工具类里抛空指针异常(这思想稍猥琐啊……直接把包袱扔给调用者了,好吧,谁让你给我null了)。
  5. 一些固定使用的算法收集到一起,不用每次问度娘了(例如Base64算法、MD5、Sha-1,还有Hash算法)
  6. 借鉴Python的很多小技巧(例如列表切片,列表支持负数index),让Java更加好用。
  7. 非常好用的ORM框架,同样借鉴PythonDjango框架,以键值对的实体代替对象实体,大大降低数据库访问的难度(再也不用像Hibernate一样配置半天ORM Mapping了)。
  8. 极大简化了文件、日期的操作,尤其是相对路径和绝对路径问题做了非常好的封装,降低学习成本。
●修复Strutil.hasBlank方法
●增加DaoTemplate
●调整SqlExecutor、SqlConnRunner、SqlRunner三个类的功能区分,去除继承依赖
●修复DaoTemplate
●为VelocityUtil增加Session参数的读取
●修复VelocityUtil中Session参数的bug
●DaoTemplate增加addOrUpdate方法
●SqlBuilder增加IN,修复WHERE条件为空时WHERE关键字丢失问题
●为Velocity添加全局上下文功能
●修复db的SqlBuilder中where语句为空导致语法错误
●优化Singleton类,轻量化同步
●增加HandleHelper.HandleRow方法,只接受一个ResultSet对象
●修复ClassPath带空格和中文导致的Class文件找不到
●更新依赖的包版本为最新
●修复Oracle的SQL语句中反引号导致的错误
●修复空Where语句导致的表名找不到引起的空指针问题(优化错误提示)
●修复DaoTemplate中add和update方法默认获取不到当前表名的问题
●修复Entity的fillVo方法返回对象错误问题
●StrUtil.encode和byte方法重了,并修改方法内容,使charset为空时使用平台相关字符集
●HttpUtil中获得客户端IP地址处理多级反向代理
●复Oracle无自增主键insert报错问题
●扩展insert方法,使之返回插入行数、主键、Long型自增主键并存
●扩展DaoTemplate方法
●FileUtil中增加normalizePath方法
●增加ZipUtil
●修改XmlUtil
●增加getAbsolutePath方法
●增加URLUtil.getPath方法
●修改InjectUtil,支持忽略大小写
●Entity中toVo区别是否忽略大小写</span>