大杂烩(常用工具类,常用数据库操作等等)

1、常用数据库关键字段
 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>
2、常用工具类
 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
3、敏感字符脱敏工具类
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;
    }
4、常用工具类
  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 }
5、JVM思维导图

 

posted @ 2022-03-23 14:36  夜半情深  阅读(65)  评论(0编辑  收藏  举报