大杂烩(常用工具类,常用数据库操作等等)
1 DB2数据库操作 2 1、表增加字段 3 ALTER TABLE 表名 ADD COLUMN 字段名 VARCHAR(2); 4 5 表增加带默认值0的字段 6 ALTER TABLE 表名 ADD COLUMN 字段名 VARCHAR(1) WITH DEFAULT '0'; 7 8 查询时某个字段值为null,替换成其他值 9 CASE WHEN 字段名 NULL THEN '0' ELSE 字段名 END 字段名 10 11 更改字段长度 12 alter table TF2M_ARAP_FUNDS alter RECEIPT_NUM set data type varchar(20); 13 14 --DB2 Create UUID 32 32-bit lowercase 15 SELECT concat (hex (RAND ()), hex (RAND ())) as uuid FROM SYSIBM.SYSDUMMY1; 16 SELECT lower(hex(RAND())||hex(RAND())) as uuid FROM sysibm.sysdummy1; 17 18 Oracle数据库操作 19 1、表字段新增 20 ALTER TABLE 表名 ADD 字段名 VARCHAR(2); 21 22 2、更新表字段 23 ALTER TABLE 表名 MODIFY 字段名 NOT NULL/NULL; 24 25 --Orcale Create UUID 32 32-bit lowercase 26 select lower(sys_guid()) from dual; 27 SELECT RAWTOHEX(SYS_GUID()) FROM DUAL; 28 29 mybatis中update动态添加 30 31 <update id="updateTfPayoutBankExtra" parameterClass="java.util.HashMap"> 32 UPDATE MYIVR_TUSER 33 <dynamic prepend="SET "> 34 <isNotEmpty property="depositFlag" prepend=" "><![CDATA[ NOTICE_DEPOSIT_FLAG = #depositFlag# ]]></isNotEmpty> 35 <isNotEmpty property="depositAccount" prepend=","><![CDATA[ NOTICE_DEPOSIT_ACCOUNT = #depositAccount# ]]></isNotEmpty> 36 </dynamic> 37 <dynamic prepend="WHERE"> 38 EXTRA_ID = #id# 39 </dynamic> 40 </update> 41 42 mybatis中delete 批量删除 43 <delete id="deletePackagePriceInstall" parameterClass="java.util.HashMap"> 44 DELETE FROM INF_HS_PACKAGE_PRICE A 45 WHERE 46 1=1 47 <isNotEmpty prepend="and" property="id"> 48 <iterate property="id" conjunction="OR"> 49 A.ID = '$id[]$' 50 </iterate> 51 </isNotEmpty> 52 </delete>
1 //1、生成5位随机数 2 String requestSn = ""; 3 for(int n=0;n<10;n++ ) { 4 requestSn += (int)(10*(Math.random())); 5 }//end 6 requestSn = requestSn.substring(0,5); 7 8 //2、清除Hibernate的缓存对象 9 this.getBasDAO().getHibernateTemplate().evict(entity); 10 11 //3、在Tomcat目录下的server.xml中加下面的项目启动文件夹和路径配置 12 <Context docBase="D:\project\RiDolPlatform2.7.2workspace3.4.2\TRA\MyTest02\WebContent" path="/TFM" reloadable="false"/></Host> 13 14 //4、在Tomcat目录下的content.xml中加下面数据库的数据源配置 15 <Resource auth="Container" driverClassName="com.ibm.db2.jcc.DB2Driver" maxActive="5" maxIdle="30" maxWait="10000" name="WFISDB" password="123456" type="javax.sql.DataSource" url="jdbc:db2://172.27.1.192:50000/TEST01" username="db2admin"/> 16 17 //5、加大jvm的运行空间 18 -Xms256m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=256m 19 20 //6、调整控制台日志输出的时间 21 -Duser.timezone=GMT+08 22 23 //7、更改eclipse编码设置 24 Windows --> General --> Content Types --> Text
1、姓名脱敏规则: 方式一:只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String fullName){ if (!Strings.isNullOrEmpty(name)) { String name = StringUtils.left(fullName, 1); return StringUtils.rightPad(name, StringUtils.length(fullName), "*"); } return name; } 方式二:名字是两位时: 张三--> 张* ,名字是三位及以上时: 燕双鹰 --> 燕*鹰 if (fullname.length() == 2){ name = fullname.replaceAll(".$", "*"); }else if (fullname.length() > 2){ name = fullname.replaceAll("(?<=.).(?=.)", "*"); } 2、手机号脱敏规则: 保留前三后四, 比如15638296218置换为156****6218 private static String desensitizedPhoneNumber(String phoneNumber){ if(StringUtils.isNotEmpty(phoneNumber)){ phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2"); } return phoneNumber; } 3、身份证号脱敏规则: 保留前六后三, 适用于15位和18位身份证号 (1)方式一:需要判断身份证号位数 private static String desensitizedIdNumber(String idNumber){ if (!Strings.isNullOrEmpty(idNumber)) { if (idNumber.length() == 15){ idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2"); } if (idNumber.length() == 18){ idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2"); } } return idNumber; } 方式二:前面StringUtils.left里面的长度6和后面的6个*的个数是对应的 private static String desensitizedIdNumber(String idNumber){ if (!Strings.isNullOrEmpty(idNumber)) { return StringUtils.left(idNumber, 6).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(idNumber, 3), StringUtils.length(idNumber), "*"), "******")); } return idNumber; }
1 package com.ritoinfo.tf2m.tobPayment.util; 2 3 import java.beans.BeanInfo; 4 import java.beans.Introspector; 5 import java.beans.PropertyDescriptor; 6 import java.lang.reflect.Method; 7 import java.math.BigDecimal; 8 import java.text.SimpleDateFormat; 9 import java.util.ArrayList; 10 import java.util.Arrays; 11 import java.util.Calendar; 12 import java.util.Collection; 13 import java.util.Date; 14 import java.util.HashMap; 15 import java.util.Iterator; 16 import java.util.List; 17 import java.util.Map; 18 19 import org.apache.commons.beanutils.PropertyUtils; 20 21 /** 22 * 通用工具类 23 * 24 * @author 25 * @date 26 */ 27 public class CommonUtil { 28 29 public static void setProperty(Object obj, String propertyName, Object value) { 30 try { 31 PropertyUtils.setProperty(obj, propertyName, value); 32 } catch (Exception e) { 33 e.printStackTrace(); 34 } 35 } 36 37 public static <T> T getProperty(Object obj, String key) { 38 Object value = null; 39 try { 40 value = PropertyUtils.getProperty(obj, key); 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 return (T) value; 45 } 46 47 public static Map collectionToKV(Collection beans, String keyName, String valName) { 48 Map rstMap = new HashMap(); 49 for (Iterator iterator = beans.iterator(); iterator.hasNext();) { 50 Object obj = iterator.next(); 51 rstMap.put(getProperty(obj, keyName), getProperty(obj, valName)); 52 } 53 return rstMap; 54 } 55 56 public static boolean contains(String o, String... array) { 57 Arrays.sort(array); 58 return Arrays.binarySearch(array, o) >= 0; 59 } 60 61 //判断是否不为空 62 public static boolean isNotEmpty(Object obj) { 63 return !isEmpty(obj); 64 } 65 66 //判断还否为空 67 public static boolean isEmpty(Object obj) { 68 if (obj == null) { 69 return true; 70 } else if (obj instanceof String) { 71 return "".equals(obj) || "undefined".equals(obj) || "null".equals(obj); 72 } else if (obj instanceof Integer) { 73 return (Integer) obj == 0; 74 } else if (obj instanceof List) { 75 return ((List) obj).size() == 0; 76 } else if (obj.getClass().isArray()) { 77 return ((Object[]) obj).length == 0; 78 } 79 return false; 80 } 81 82 //将map中的数据转换到VO中 83 public static <T> T mapToObj(Map<String, Object> map, Class<?> beanClass) { 84 if (map == null) { 85 return null; 86 } 87 try { 88 Object obj = beanClass.newInstance(); 89 BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); 90 PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); 91 for (PropertyDescriptor property : propertyDescriptors) { 92 Method setter = property.getWriteMethod(); 93 if ("BigDecimal".equals(setter.getParameterTypes()[0].getSimpleName())) { 94 if(UtilString.isNotEmpty(val.toString())){ 95 setter.invoke(obj, new BigDecimal(val.toString())); 96 continue; 97 }else{ 98 setter.invoke(obj, new BigDecimal("0")); 99 continue; 100 } 101 } 102 } 103 return (T) obj; 104 } catch (Exception e) { 105 e.printStackTrace(); 106 } 107 return null; 108 } 109 110 public static String getCurrentDate(String pattern) { 111 return formatDate(new Date(), pattern); 112 } 113 114 // 获取时间字符串 115 public static String formatDate(Date date, String pattern) { 116 SimpleDateFormat formatter = new SimpleDateFormat(pattern); 117 return formatter.format(date); 118 } 119 120 public static Date calendarAdd(Date date, int field, int amount) { 121 if (date == null) { 122 date = new Date(); 123 } 124 Calendar cal = Calendar.getInstance(); 125 cal.setTime(date); 126 cal.add(field, amount); 127 return cal.getTime(); 128 } 129 130 /** 131 * 提取集合中的对象的属性(通过getter函数), 组合成List. 132 * 133 * @param collection 来源集合. 134 * @param propertyName 要提取的属性名. 135 */ 136 public static List toPropertyList(final Collection collection, final String propertyName) { 137 List list = new ArrayList(); 138 for (Object obj : collection) { 139 list.add(getProperty(obj, propertyName)); 140 } 141 return list; 142 } 143 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异