常用工具类介绍
温馨提醒:
更多资料下载请点--> 蓝凌开发资料大全
Userutil
该类主要是获取用户信息以及用户权限
读取当前用户信息方法
方法名 | 方法解读 |
Public static KMSSUser getKMSSUser() | 获取当前登录员工,常用于java代码中 |
Publicstatic KMSSUser getKMSSUser(HttpServletRequest request) | 获取当前登录员工,常用于jsp页面中(和上面的方法基本上没什么区别,getKMSSUser()方便在service和dao中使用) |
public static SysOrgPerson getUser() | 同getKMSSUser() |
public static String getUserName(HttpServletRequest request) | 同getKMSSUser(HttpServletRequest request) |
public static SysOrgPerson getEveryoneUser() | 获取所有者用户 |
校验权限
方法名 | 方法解读 |
public static boolean checkAuthentication(String url, String mothod) | 校验当前用户是否具有某个指定资源的权限。 |
public static boolean checkUserId(String id) | 判断当前用户是否属于某个ID(其中id,可以为个人、岗位、部门、机构、常用群组的ID)。 |
public static boolean checkUserIds(List<String> ids) | 判断当前用户是否属于某个ID(其中id,可以为个人、岗位、部门、机构、常用群组的ID),与上面方法类似。 |
public static boolean checkUserModel(ISysOrgElement element) | 判断当前用户是否属于某个组织架构(其中element,可以为为个人、岗位、部门、机构、常用群组)。 |
public static boolean checkUserModels(List<?> elements) | 判断当前用户是否属于某个组织架构(其中element,可以为为个人、岗位、部门、机构、常用群组),与上面方法类似。 |
public static boolean checkRole(String role) | 判断当前用户是否具有某个角色(如阅读权限GF_SUPPLIER_VIEW)。 |
public static boolean checkRoles(List<String> roles) | 判断当前用户是否具有某个角色,与上面方法类似。 |
public static boolean checkAreaRole(String role, String areaHierarchyId, SysAuthConstant.AreaIsolation type) throws Exception | 判断当前用户是否可以使用某个角色操作目标场所的数据(其中,role是角色,areaHierarchyId是目标场所层级ID,type是场所的可用性类型。ISysAuthConstant.TYPE_VISIBLE_BRANCH 表示用户可以使用同一分支上所有上下级场所的数据 ;ISysAuthConstant.TYPE_VISIBLE_CHILD 表示用户仅可使用本场所和下级场所的数据)。 |
public static boolean checkAreaRole(String role, IBaseModel model, SysAuthConstant.AreaIsolation type) throws Exception | 判断当前用户是否可以使用某个角色操作目标场所的数据(其中,role是角色,model是目标对象,type是场所的可用性类型。ISysAuthConstant.TYPE_VISIBLE_BRANCH 表示用户可以使用同一分支上所有上下级场所的数据 ;ISysAuthConstant.TYPE_VISIBLE_CHILD 表示用户仅可使用本场所和下级场所的数据)。 |
HQLInfo和HQLUtil
HQLInfo类
构造和描述HQL语句
方法名 | 方法解读 |
public void setDistinctType(int distinctType) | 设置查询时自动过滤重复数据的类型(其中,distinctType 为DISTINCT_AUTO,表示系统自己判断是否需要过滤,distinctType 为DISTINCT_NO,表示不过滤重复值,distinctType 为DISTINCT_YES过滤重复值) |
public void setFromBlock(String fromBlock) | 设置from语句 |
public void setIsAutoFetch(boolean autoFetch) | 设置是否自动展开相关的字段信息, lazy="true"时获得对象的关联实例,lazy="false"就不需要设置fetch了。 |
public void setJoinBlock(String joinBlock) | 设置紧跟在from语句后面的join语句 |
public void setModelName(String modelName) | 设置域模型名称 |
public void setOrderBy(String orderBy) | 设置排序字段 |
public void setParameter(String key, Object value) | 设置HQL参数 |
public void setPageNo(int pageNo) | 设置从第几页开始显示 |
public void setRowSize(int rowSize) | 设置每页显示多少条记录 |
public void setSelectBlock(String selectBlock) | 设置select语句,不设置则返回域模型 |
public void setWhereBlock(String whereBlock) | 设置where语句 |
HQLUtil类
HQL语句拼装类, 作用范围:所有代码,直接调用静态方法
方法名 | 方法解读 |
public static String getAutoFetchInfo(HQLInfo hqlInfo) | 获取自动fetch的信息,当使用order by时经常需要调用该函数fetch相关信息,例如:hqlInfo.setOrderBy("dycSignatureLog.docUser.fdId"); System.out.println(HQLUtil.getAutoFetchInfo(hqlInfo));会输出left join fetch dycSignatureLog.docUser |
public static HQLWrapper buildPreparedLogicIN(String item, List<?> valueList) public static String buildLogicIN(String item, List valueList) | 构造in 预编译语句,若valueList超过1000时,该函数会自动拆分成多个in语句,例如:whereBlock = HQLUtil.buildLogicIN("and gfSupplierMain.fdSupplierMajors.fdId", idList);会把idList中的值 都用or in链接起来。 |
public static String buildModelIds(List modelList) | 取得Model列表的HQL的In查询格式数据 |
public static Map buildManyToManyIDMap(Session hbmSession, String sql) | 从数据库中读取ManyToMany的映射表 |
PublicstaticMap[]buildManyToManyIDBidirectionalMap(Session hbmSession,String sql) | 从数据库中读取ManyToMany的映射表,并构造双向的映射表 |
public static List fetchManyToManyIDList(List idList, Map idMap) | 将相关的ID从ManyToMany的映射表中读出,再添加到ID列表中 |
private static void fetchManyToManyIDList(String id, List results, Map idMap) | 将id以及id相关的ID列表(从ManyToMany的映射表中查出)添加到results列表中,modelName=com.landray.kmss.sys.organization.model.SysOrgPerson propertyName=hbmPosts.fdName返回[0]="kmss_list_field_0.fdName";[1]=" left join sysOrgPerson.hbmPosts kmss_list_field_0" |
public static String[] formatPropertyWithJoin(String modelName, String propertyName, String startProperty) | 根据域模型名称和查询的属性,判断是否应该添加left join语句, 返回值中[0]是left join语句,[1]是封装后的属性。样例:输入 modelName=com.landray.kmss.sys.organization.model.SysOrgPerson propertyName=hbmPosts.fdName startProperty=sysOrgPerson 返回: [0]="kmss_list_field_0.fdName"; [1]=" left join sysOrgPerson.hbmPosts kmss_list_field_0" |
public static String replaceToSQLString(String str) | 将“aaa,bbb,ccc”或“aaa;bbb;ccc”的字符串转换为SQL使用的“'aaa','bbb','ccc' |
public static String getSqlIDGenerationFunction() | 返回当前使用数据库的uuid生成函数 |
public static Query setParameters(Query query, List<HQLParameter> parameterList) | 设置query的预编译参数 |
ModelUtil
方法名 | 方法解读 |
public static String getModelUrl(Object mainModel) public static String getModelUrl(Object mainModel, String className) | 获取一个域模型的URL,view请求路径。例如:/dyc/signature/dyc_signature_log/dycSignatureLog.do?method =view&fdId=13f55291ace2cefac9b7a4a4a61be33e |
private static String formatModelUrl(Object mainModel, String url) | 根据域对象的值对URL中的${property}信息进行替换 |
public static String getModelClassName(Object mainModel) | 判断一个对象是否被Hibernate的延时加载机制给修改,并返回正确的类名 |
public static String getModelTableName(Object mainModel) | 返回HQL语句中用于查询使用的表名,如:sysOrgElement |
public static void checkTreeCycle(Object treeModel, Object parent, String parentProperty) | 检查树结构的域模型中是否出现了循环嵌套,校验失败后抛出TreeCycleException异常 |
public static Object clone(Object object) | 对象克隆 |
public static String getModelPropertyString(Object model, String propertyName, String splitStr, Locale locale) | 获取域模型中propertyName属性对应的信息,并对枚举、列表等相关信息进行处理 |
public static String getPropertyType(String modelName, String property) | 获取域模型某个属性的类型,返回值为数据字典定义的类型 |
public static boolean isModelMerge(IBaseModel model) | 判断某个域模型是否已经持久化 |
public static List getModelRoles(String modelName) | 根据域模型获取当前模块的角色权限 |
public static List getModelRolesInMap(String modelName) | 根据模块的域模型名存取该模块的角色权限 |
StringUtil
常用字符转换方法
方法名 | 方法解读 |
public static boolean isNull(String str) | 判断一个字符串是否为null或空 |
public static boolean isNotNull(String str) | 判断一个字符串非空 |
public static String getString(String s) | 过滤字符串null |
public static String escape(String sourceStr) | URL编码,其功能等同于javascript的escape函数 |
public static String unescape(String sourceStr) | URL解码,功能相当于javascript的unescape函数。 本方法保证 不论参数s是否经过escape()编码,均能得到正确的“解码”结果 |
public static String XMLEscape(String src) | 转换字符串中HTML/XML敏感的字符 |
public static String getParameter(String query, String param) | 获取query中的参数值, 样例:a=1&b=2,注意:不带?符号 |
public static Map getParameterMap(String query, String splitStr) | 将query的值转换为哈希表,哈希表的格式类似request.getParameterMap 样例:a=1,b=2,其中splitStr= |
public static String setQueryParameter(String query, String param, String value) | 替换URL中?后面部分的参数 |
public static String replace(String srcText, String fromStr, String toStr) | 替换字符串中的指定字符,类似String.replaceAll的方法, 但去除了正则表达式的应用 |
public static String formatUrl(String url) public static String formatUrl(String url, boolean isNeedDNS) | 格式化URL,若传递的参数中以/开始,该函数会自动添加DNS和ContextPath |
public static String linkString(String leftStr, String linkStr, String rightStr) | 连接字符串,常用与HQL语句的拼装,当左边值为空时返回右边值,当右边值为空时返回左边值,左右的值都不为空时返回左边值+连接串+右边值 |
public static int getIntFromString(String value, int defaultValue) | 将字符串转换为数字,如果有错,采用缺省值 |
public static String[] mergeStringArray(String[] ary1, String[] ary2) | 合并2个string[],并去掉重复项 |
public static String[] emptyArray2Null(String[] ary1) | 空的数组返回null |
public static String clearScriptTag(String html) | 过滤html标签 |
ArrayUtil
数组比较的方法和数组的转换
方法名 | 方法解读 |
public static boolean isListSame(List list1, List list2) | 判断两个列表中的内容是否一样(忽略顺序) |
public static boolean isListIntersect(List list1, List list2) | 判断两个列表中是否有交集 |
public static boolean isArraySame(Object[] objArr1, Object[] objArr2) | 判断两个数组的内容是否一样(忽略顺序) |
public static boolean isArrayContains(Object[] objArr1, Object[] objArr2) | 判断objArr1是否包含了objArr2 |
public static boolean isArrayIntersect(Object[] objArr1, Object[] objArr2) | 判断两个数组中是否有交集 |
public static String[] toStringArray(Object[] objs) | 将所有类型的数组转换为String数组 |
public static String[] joinProperty(List objList, String properties,String split) | 从一个bean列表中提取某个属性的值,并用指定的分隔符拼凑成字符串返回,需要提取的值,若需要提取多个属性,使用:分隔,如:fdId:fname |
public static void concatTwoList(List fromList, List toList) | 将fromList中的元素添加到toList中,过滤重复值 |
public static boolean isEmpty(List list) | 判断list是否为null或empty |
public static boolean isEmpty(Collection collection) | 判断集合是否为null或empty |
public static List convertArrayToList(Object[] objects) | 数组转为List |
public static String concat(String[] arr, char c) | 字符串数组转为字符串,使用指定字符连接数组元素 |
DataUtil
日期转换类 转换一个 java.util.Date 对象到一个字符串以及 一个字符串到一个 java.util.Date 对象
方法名 | 方法解读 |
public static Date convertStringToDate(String strDate, String pattern) | 将字符串转换为Date类型 |
public static Date convertStringToDate(String strDate, String type,Locale locale) | 将字符串转换为Date类型,type 见本类中的TYPE_*常量 |
public static String convertDateToString(Date aDate, String pattern) | 将Date转换为字符串 |
public static String convertDateToString(Date aDate, String type,Locale locale) | 将Date转换为字符串,type 见本类中的TYPE_*常量 |
public static long getDateTimeNumber(Date date, Date time) | 将日期、时间合并成长整型数据 |
public static long getDateNumber(Date date) | 将日期的时间部分清除后,转换成long类型 |
public static Date getDate(int day) | 获取日期(获取当天日期getDate(0)) |
public static long getTimeNubmer(Date date) | 将时间的日期部分清除后,转换成long类型 |
public static Date getTimeByNubmer(long l) | 将一个不包含日期的时间量,转换为Date类型,其中的日期为当天 |
SpringBeanUtil
方法名 | 方法解读 |
public static boolean isInit() | 判断是否SpringBeanUtil是否已经初始化 |
publicstaticApplicationContext getApplicationContext() | 获取spring的applicationContext |
publicstaticvoid setApplicationContext(ApplicationContext applicationContext) | 设置spring的applicationContext |
public static List getBeansForType(Class type) | 根据类型返回bean列表 |
public static List getBeansForType(Class type, String exceptBeanName) | 根据类型返回bean列表(去除exceptBeanName) |
public static Object getBean(String beanName) | 根据名称获取spring的bean,例如:sysAttMainService = (ISysAttMainCoreInnerService) getBean("sysAttMainService"); |
NumberUtil
常用的数据格式转换方法
方法名 | 方法解读 |
public static String roundDecimal(Object value) | 用###,###.##格式化字符串值 |
public static String roundDecimal(Object value, String pattern) | 用指定格式格式化字符串值 |
public static String roundDecimal(double fTemp) | 保留两位小数 |
public static String roundDecimal(double fTemp, int pos) | 保留指定的位小数 |
public static double correctDouble(double d) | 修正double的误差 |
ResourceUtil
方法名 | 方法解读 |
public static String getString(String key) | 获取默认资源的值,默认值的是src里面的资源文件,例如:资源文件中button.add=新增;则getString(” button.add”);返回新增。 |
public static String getString(String key, String bundle) | 获取指定bundle的的资源值,资源文件中button.add=新增;则getString(”table.dycSignatureMain”,’’gf-supplier’);返回签名管理。 |
public static String getString(String key, Locale locale) | 获取用户选择的语言环境的资源值,默认为zh-CN |
public static String getString(String key, String bundle, Locale locale) | 获取指定bundle和用户选择的语言环境的资源值,默认为zh-CN |
private static Locale getLocaleByUser() | 获取当前用户的locale |
private static Locale getLocaleByUser(HttpServletRequest request) | 获取当前用户的locale |
public static String getOfficialString(String key) | 获取官方的资源值,官方指的是Locale 为zh-CN |
public static String getOfficialString(String key, String bundle) | 获取指定bundle的官方的资源值 |
public static String getString(HttpSession session, String key) | 获取指定语言的资源值 |
public static String getString(HttpSession session, String bundle,String key) | 获取指定bundle和语言环境的资源值 |
public static String getStringValue(String key, String bundle,Locale locale) | 获取指定bundle和语言环境的资源值 |
public static String getString(String key, String bundle, Locale locale,Object arg) | 获取指定bundle和语言环境的资源值,并自动将资源值中的{0}替换为arg,例如资源文件中table.dycSignatureMain=签名管理{0},代码中String rs = ResourceUtil.getString("table.dycSignatureMain", "dyc-signature", locale, "dd");返回签名管理dd |
public static String getString(String key, String bundle, Locale locale,Object[] args) | 获取指定bundle和语言环境的资源值,并自动将资源值中的{i}替换为args[i],例如资源文件中table.dycSignatureMain=签名管理{0}{1},代码中String[] a = { "dd", "fdf" }; String rs = ResourceUtil.getString("table.dycSignatureMain", "dyc-signature", locale, a);返回签名管理ddfdf |
public static String getKmssConfigString(String key) | 获取kmss-config.proerties的信息,例如: getKmssConfigString("kmss.lang.official")返回的zh-CN |
public static Locale getLocale(String lang) | 根据语言设置获取语言locale |
ObjectUtil
方法名 | 方法解读 |
public static boolean equals(Object obj1, Object obj2) | 比较两个对象是否相等(同时处理null的情况),当两个对象都为空时返回true |
public static boolean equals(Object obj1, Object obj2,boolean bothNullReturn) | 比较两个对象是否相等(同时处理null的情况),当两个对象都为空时返回指定值bothNullReturn |
public static Long parseLong(Object value) | 将一个对象转换为Long类型 |
public static Double parseDouble(Object value) | 将一个对象转换为Double类型 |
public static PropertyDescriptor getPropertyDescriptor(Class c,String property) | 校验某个类的某个属性是否能够执行get或set方法 |