1. 程式人生 > 其它 >大雜燴(常用工具類,常用資料庫操作等等)

大雜燴(常用工具類,常用資料庫操作等等)

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 }