- 浏览: 352638 次
- 性别:
- 来自: 南京
博客专栏
-
设计模式那些事儿
浏览量:5780
文章分类
- 全部博客 (85)
- news (3)
- java面试题 (3)
- java基础 (2)
- 英语短文 (2)
- 英语演讲 (2)
- Weekly Address (5)
- 英语写作 (2)
- 转载 (1)
- 2010 FIFA World Cup (5)
- Scrum (1)
- 计算机基础 (2)
- java引用对象 (1)
- 英语阅读 (1)
- Ext (6)
- Javascript (3)
- Web编程 (4)
- 战国策 (7)
- html (1)
- java (33)
- concurrency (1)
- jvm (31)
- 方法区 (9)
- 栈 (5)
- 堆 (1)
- 程序计数器 (1)
- 本地方法栈 (1)
- class file (5)
- 常量池 (2)
- attributes (1)
- 连接模型 (1)
- applet (1)
- gc (5)
- 垃圾收集 (5)
- 方法调用 (2)
- IBM (0)
- 门户(Portal) (0)
- Solr (1)
- Lucene (1)
- 全文检索 (1)
- 设计模式 (4)
- 责任链模式 (1)
- 责任链 (1)
- COR (1)
- Pattern (1)
最新评论
-
Nabulio:
是不错的
Java的Integer与int互转 -
shihengli2010:
学习了 !Integer i = 100; Integer ...
Java的Integer与int互转 -
flex涵:
还可以,差不多就是这个意思.
Java的Integer与int互转 -
lijingshou:
相当好用。。。
输入年月日格式yyyyMMdd,判断是否是周末 -
denverj:
你好,是这本书的英文版,名字叫<Inside the J ...
JVM学习笔记-帧数据区(Frame Data)
收藏列表
- 全部 [42]
- 默认 [12]
- ajax [1]
- java [12]
- ibatis [1]
- mysql [5]
- json [1]
- poi [1]
- js [6]
- excel [1]
- thread [1]
- ldap [1]
- gzip [1]
- regexp [1]
- design pattern [2]
- builder [1]
- adapter [1]
- enum [1]
- solr [1]
- cmd [1]
- reflection [2]
- asc [1]
- cache(缓存) [1]
- database(数据库) [2]
- sort(排序) [1]
- strategy pattern(策略模式) [1]
标题 | 标签 | 来源 | |
mysql触发器造数据 | mysql | ||
CREATE DEFINER=`root`@`%` TRIGGER `QSF_BUSI_DEV`.`tri_product` AFTER INSERT ON QSF_BUSI_DEV.PRODUCT_1 FOR EACH ROW BEGIN DECLARE v_cur_1 INT DEFAULT 1; DECLARE v_log_date DATE; DECLARE c_date DATE DEFAULT '2015-11-18'; WHILE v_cur_1 <= 100000 DO INSERT INTO PRODUCT ( `PRODUCT_OID`, `PRODUCT_NAME`, `PRODUCT_CODE`, `BUSI_TYPE`, `PRODUCT_TYPE`, `PRODUCT_SALE_TYPE`, `LOAN_AMT`, `MIN_BUY_AMT`, `BILL_NO`, `BILL_ISS_DATE`, `BILL_DUE_DATE`, `DRAWER_NAME`, `ACCPTR_NAME`, `HOLDER_NAME`, `HOLDER_ACCT_NO`, `HOLDER_BANK_NAME`, `HOLDER_BANK_NO`, `RAISE_START_DATE`, `RAISE_END_DATE`, `TRADE_TYPE`, `BILL_LOAN_DEBIT_CNTR_NO`, `ISS_AMT`, `PERIOD`, `RAISE_PROGRESS`, `SELL_DATE`, `ACCPTR_BANK_NAME`, `ACCPTR_BANK_NO`, `IS_OPEN_SUBS`, `IS_OPEN_BUY`, `REMARK`, `VERSION`, `FLAG_SRC`, `FLAG_DELETED`, `CREATED_BY`, `CREATED_TIME`, `LAST_UPD_BY`, `LAST_UPD_TIME`, `REC_DIGI_PROOF` ) VALUES ( v_cur_1, concat('票易赚',v_cur1), concat('100001',v_cur1), '100', '01', '0', 50000000, 1000, concat('票易赚',v_cur1), now(), now(), '张三', '张三', '张三', '', '', '', now(), now(), '022', '', 50000000, 28, 0.9000, now(), '中国银行', 'CHINABANK', 'Y', 'Y', '', 0, 0, N, 'SYSTEM', now(), 'SYSTEM', now(), '' ); SET v_cur_1 = v_cur_1 + 1; END WHILE; END |
|||
根据字符串范围搜索 | mysql | ||
select * from hr_utilities WHERE TO_DAYS(concat(YEAR, '-', MONTH, '-01')) >= TO_DAYS(concat('2015', '-', '04', '-01')) and TO_DAYS(concat(YEAR, '-', MONTH, '-01')) <= TO_DAYS(concat('2015', '-', '05', '-01')) |
|||
JS精确计算 | |||
/** * 乘法(精确) * @param arg1 * @param arg2 */ function accMul(arg1, arg2){ if(arg1==null || arg1=="" || arg1==undefined || arg2==null || arg2=="" || arg2==undefined){ return; } var m=0,s1=arg1.toString(),s2=arg2.toString(); var result, len=0; try{ m+=s1.split(".")[1].length }catch(e){} try{ m+=s2.split(".")[1].length }catch(e){} return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m); } /** * 除法(精确) * @param arg1 * @param arg2 * @returns {number} */ function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{ t1=arg1.toString().split(".")[1].length }catch(e){} try{ t2=arg2.toString().split(".")[1].length }catch(e){} with(Math){ r1=Number(arg1.toString().replace(".","")); r2=Number(arg2.toString().replace(".","")); return (r1/r2)*pow(10,t2-t1); } } /** * 加法(精确) * @param arg1 * @param arg2 * @returns {number} */ function accAdd(arg1,arg2){ var r1,r2,m; try{ r1=arg1.toString().split(".")[1].length }catch(e){r1=0} try{ r2=arg2.toString().split(".")[1].length }catch(e){r2=0} m=Math.pow(10,Math.max(r1,r2)); return (arg1*m+arg2*m)/m } /** * 精度控制为7位以内 * @param arg */ function prec(arg){ if(arg==null || arg=="" || arg==undefined){ return; } var a = arg.toString(); try{ if(a.split(".")[1].length > 7){ arg = arg.toFixed(7); } }catch(e){} return arg; } |
|||
为什么要使用RegExp对象 | js | ||
//此对象适用于动态正则表达式,并且支持全局匹配|大小写敏感|多行匹配3种模式 //参考http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp var regExp = '^' + 表达式1 + 表达式2 + 表达式3 + '$'; var pattern=new RegExp(regExp,"g"); pattern.test(内容); |
|||
MYSQL级联删除 | mysql | ||
DELETE MF_SORTING_CONSUME_DTL.* FROM MF_SORTING_CONSUME_DTL JOIN MF_WELDING_CONSUME_DTL ON MF_SORTING_CONSUME_DTL.ROW_ID = MF_WELDING_CONSUME_DTL.SORTING_CONSUME_DTL_ID WHERE MF_WELDING_CONSUME_DTL.WELDING_CONSUME_ID = #{id} |
|||
JS数组去重 | |||
/** * 数组去重 * @returns {*[]} */ Array.prototype.unique = function() { var n = {},r=[]; //n为hash表,r为临时数组 for(var i = 0; i < this.length; i++) //遍历当前数组 { if (!n[this[i].gdsId]) //如果hash表中没有当前项 { n[this[i].gdsId] = true; //存入hash表 r.push(this[i].gdsId); //把当前数组的当前项push到临时数组里面 } } return r; } |
|||
mysql分区表执行计划 | |||
explain partitions select * from mf_production_line_his WHERE SECTION BETWEEN DATE('2014-01-23') AND DATE ('2015-12-01') AND CREATED_TIME BETWEEN DATE('2014-01-23') AND DATE ('2015-12-01') ; |
|||
MySQL语句示例 | mysql | ||
SELECT t4.* from ( SELECT coalesce(t3.DOA_NONE_USED_NUM,0) + coalesce(t3.DOA_USED_NUM,0) as NUM , t3.* from ( SELECT t2.STATUS, t2.MATERIAL_CODE, t2.MATERIAL_ID, t2.GDS_NAME, t2.BOX_NO, t2.DESCRIPTION, t2.BILL_NO, t2.PLAN_ORDER_NO, t2.TAX_UNIT_PRICE, t2.PUR_NUM, t2.HOPE_TIME, t2.ORDER_NO, t2.ORDER_ID, CASE WHEN t2.N_STATUS = '0' THEN t2.ROR_NONE_USED_NUM WHEN t2.N_STATUS = '1' THEN t2.DOA_NONE_USED_NUM - t2.ROR_NONE_USED_NUM WHEN t2.N_STATUS = '2' THEN t2.DOA_NONE_USED_NUM + t2.SCRAP_NUM_N ELSE t2.DOA_NONE_USED_NUM END as DOA_NONE_USED_NUM, CASE WHEN t2.U_STATUS = '0' THEN t2.ROR_USED_NUM WHEN t2.U_STATUS = '1' THEN t2.DOA_USED_NUM - t2.ROR_USED_NUM WHEN t2.U_STATUS = '2' THEN t2.DOA_USED_NUM + t2.SCRAP_NUM_U ELSE t2.DOA_USED_NUM END as DOA_USED_NUM from ( SELECT CASE WHEN n.STATUS = '0' OR u.STATUS = '0' THEN '0' ELSE '1' END STATUS, t1.NUM, t1.MATERIAL_CODE, t1.MATERIAL_ID, t1.GDS_NAME, t1.BOX_NO, t1.DESCRIPTION, t1.BILL_NO, t1.PLAN_ORDER_NO, t1.TAX_UNIT_PRICE, t1.PUR_NUM, t1.HOPE_TIME, t1.ORDER_NO, t1.ORDER_ID, CASE WHEN t1.STORAGE_ID = -1 THEN coalesce(t1.NUM,0) - coalesce(n.SCRAP_NUM, 0) - coalesce(n.RETURN_NUM, 0) - coalesce(n.REPLACE_NUM, 0) END as DOA_NONE_USED_NUM, CASE WHEN t1.STORAGE_ID = -2 THEN coalesce(t1.NUM,0) - coalesce(u.SCRAP_NUM, 0) - coalesce(u.RETURN_NUM, 0) - coalesce(u.REPLACE_NUM, 0) END as DOA_USED_NUM, coalesce(n.SCRAP_NUM, 0) + coalesce(n.RETURN_NUM, 0) + coalesce(n.REPLACE_NUM, 0) ROR_NONE_USED_NUM, coalesce(u.SCRAP_NUM, 0) + coalesce(u.RETURN_NUM, 0) + coalesce(u.REPLACE_NUM, 0) ROR_USED_NUM, n.status N_STATUS, u.status U_STATUS, n.SCRAP_NUM as SCRAP_NUM_N, u.SCRAP_NUM as SCRAP_NUM_U from ( select sum(a.NUM) as NUM, a.GOODS_NO as MATERIAL_ID, c.CODE as MATERIAL_CODE, c.GDS_NAME, a.BOX_NO, c.DESCRIPTION, f.P_ORDER_NO as BILL_NO, f.P_BATCH_NO as PLAN_ORDER_NO, m.TAX_UNIT_PRICE, m.PUR_NUM, m.HOPE_TIME, o.ORDER_NO, o.ROW_ID ORDER_ID, b.ROW_ID STORAGE_ID, (SELECT MAX(n.ROW_ID) from PUR_ROR n where n.TYPE = 'N' and n.BOX_NO = a.BOX_NO and n.MATERIAL_ID = a.GOODS_NO GROUP BY n.BOX_NO, n.MATERIAL_ID) as N_ROR_ID, (SELECT MAX(u.ROW_ID) from PUR_ROR u where u.TYPE = 'Y' and u.BOX_NO = a.BOX_NO and u.MATERIAL_ID = a.GOODS_NO GROUP BY u.BOX_NO, u.MATERIAL_ID) as U_ROR_ID from ST_STORAGE_DETAIL a join MD_MATERIAL_SPECIFIC c on c.ROW_ID = a.GOODS_NO join MD_STORAGE_DEF b on b.ROW_ID = a.STORAGE_ID and b.ROW_ID IN(-1,-2) join(select distinct IN_STORAGE_ID,BOX_NO from ST_IN_STORAGE_DETAIL ) d ON d.BOX_NO = a.BOX_NO join ST_IN_STORAGE f on f.ROW_ID = d.IN_STORAGE_ID and f.SOURCE = '2' join PUR_ORDER o on o.ORDER_NO = a.OUT_NO join PUR_ORDER_MATERIAL m on m.PUR_ORDER_ID = o.ROW_ID and m.MATERIAL_ID = a.GOODS_NO |
|||
db2中关于递归(with)的使用 | |||
在with在oracle中称为家族树!pub中oracle模块对此类的使用已经很成熟! 因为有人问及,这边简单的再探讨一下 ------------------- 1.创建测试表 create table zxt_test ( id varchar(10), ivalue varchar(20), iname varchar(20) ) not logged initially; commit; ----------- 2.插入测试语句 insert into zxt_test values('1','aa','x'),('2','bb','x'),('3','bb','x'),('1','bb','y'),('2','bb','y'),('3','bb','y'); commit; --------------- 3.查看数据 select * from zxt_test; 1 'aa' 'x' 2 'bb' 'x' 3 'bb' 'x' 1 'bb' 'y' 2 'bb' 'y' 3 'bb' 'y' ---------------- 4.with 的写法! with s as ( select row_number()over(partition by iname order by id) id1, row_number()over(partition by iname order by id) id2, ivalue,iname from zxt_test ) , t(iname,id1,id2,ivalue) as ( select iname,id1,id2,cast(ivalue as varchar(100)) from s where id1 =1 and id2=1 union all select t.iname,t.id1+1,t.id2,cast(s.ivalue||','||t.ivalue as varchar(100)) from s, t where s.id2=t.id1+1 and t.iname = s.iname ) select iname,ivalue from t where t.id1= (select max(id1) from s where s.iname = t.iname); 5.结果如下: 'x' 'bb,bb,aa' 'y' 'bb,bb,bb' --------- |
|||
多行合并 | database(数据库), mysql | ||
select ROW_ID,group_concat(CODE order by CODE separator ",") as CODE from MD_MATERIAL_SPECIFIC group by ROW_ID |
|||
日期对比 | js | ||
function dateCompare(begin,end,dateFormat,range) { if(begin && end && dateFormat) { var dividend = unieap.dateParser(end,dateFormat) - unieap.dateParser(begin,dateFormat); var divisor = 24 * 60 * 60 * 1000 var margin = dividend/ divisor; if(margin > range || margin < 0) return false; else return true; } else { return false; } } //调用代码 var order_date_begin = unieap.byId("order_date_begin").getValue(); var order_date_end = unieap.byId("order_date_end").getValue(); var range = 30; if(!dateCompare(order_date_begin,order_date_end,"yyyy-MM-dd",range)) { MessageBox.alert({message:"订单日期必须在" + range + "天以内!请重新选择!",title:MSG_TITLE_INFO,icon:"warn",onComplete:""}); document.getElementById("queryBtn").disabled = true; } else { document.getElementById("queryBtn").disabled = false; } |
|||
递归 | |||
with rpl (parentid,rowid) as ( select root.PARENT_MODULE_ID, root.row_id from ad_program root union all select child.PARENT_MODULE_ID, child.row_id from rpl parent, ad_program child where parent.rowid = child.PARENT_MODULE_ID ) select rowid, parentid from rpl; |
|||
ibatis缓存控制器 | ibatis, cache(缓存) | ||
/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) radix(10) lradix(10) // Source File Name: CacheController.java package com.ibatis.sqlmap.engine.cache; import java.util.Properties; // Referenced classes of package com.ibatis.sqlmap.engine.cache: // CacheModel public interface CacheController { public abstract void flush(CacheModel cachemodel); public abstract Object getObject(CacheModel cachemodel, Object obj); public abstract Object removeObject(CacheModel cachemodel, Object obj); public abstract void putObject(CacheModel cachemodel, Object obj, Object obj1); public abstract void configure(Properties properties); } |
|||
Gzip过滤 | gzip | ||
/*jadclipse*/// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) radix(10) lradix(10) // Source File Name: EAPGZipFilter.java package com.neusoft.ermsuite.platform.unieap.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.zip.GZIPOutputStream; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; // Referenced classes of package com.neusoft.ermsuite.platform.unieap.util: // Wrapper, EAPAppContext public class EAPGZipFilter implements Filter { public EAPGZipFilter() { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String _eapsyspath = ((HttpServletRequest)request).getServletPath(); if(isNoCompPress(_eapsyspath)) { chain.doFilter(request, response); return; } else { HttpServletResponse resp = (HttpServletResponse)response; Wrapper wrapper = new Wrapper(resp); chain.doFilter(request, wrapper); byte gzipData[] = gzip(wrapper.getResponseData()); resp.addHeader("Content-Encoding", "gzip"); resp.setContentLength(gzipData.length); ServletOutputStream output = response.getOutputStream(); output.write(gzipData); output.flush(); return; } } private byte[] gzip(byte data[]) { ByteArrayOutputStream byteOutput; GZIPOutputStream output; byteOutput = new ByteArrayOutputStream(10240); output = null; try { output = new GZIPOutputStream(byteOutput); output.write(data); break MISSING_BLOCK_LABEL_71; } catch(IOException e) { e.printStackTrace(); } if(output != null) try { output.close(); } catch(IOException ioexception) { } break MISSING_BLOCK_LABEL_84; Exception exception; exception; if(output != null) try { output.close(); } catch(IOException ioexception1) { } throw exception; if(output != null) try { output.close(); } catch(IOException ioexception2) { } return byteOutput.toByteArray(); } public void init(FilterConfig fConfig) throws ServletException { //noCompressPages=Report-DocPrintAction;Buyplan;textinfoList String noCompressPages = EAPAppContext.getInstance().getProperty("noCompressPages"); String str[] = noCompressPages.split(";"); try { for(int i = 0; i < str.length; i++) pages.add(str[i]); } catch(Exception e) { e.printStackTrace(); } } public boolean isNoCompPress(String url) { boolean flag = false; String str = null; for(int i = 0; i < pages.size(); i++) { str = (String)pages.get(i); if(url.indexOf(str) == -1) continue; flag = true; break; } return flag; } private static List pages = new ArrayList(); } |
|||
取得一个字符串占有的字节数 | |||
/** * 取得一个字符串占有的字节数 其中汉字占据的字节数在系统变量Global.js中定义 * @param {String} inValue 要计算长度的字符串 * @return 字符串的长度 */ bitLength=function(inValue){ inValue=inValue.toString(); if(inValue==null || inValue == "") return 0; var len = 0; for(var i=0; i < inValue.length; i++){ if(inValue.substring(i,i+1).charCodeAt(0) < 128){ len++; continue; } len+=unieap.Global.bitsOfOneChinese; } return len; } |
|||
数字格式转换函数 | |||
/** * 数字格式转换函数 * * @param {Number} inValue 输入值 * @param {String} dataPattern 格式化格式,形如#,###.00、###.00‰等 */ numberFormat = function(inValue,dataPattern){ if (inValue == ""||!dataPattern) { return inValue; } if (/\,/g.test(inValue)) { inValue = inValue.replace(/\,/g, ''); } if (/\-/g.test(inValue)) { var tempvalue = inValue; tempvalue = tempvalue.replace(/\-/g, ''); if (inValue.indexOf('-') == 0) { inValue = "-" + tempvalue; } else { inValue = tempvalue; } } var str = inValue.toString(); var tempPattern = dataPattern; if (tempPattern == null || tempPattern == "") { return inValue; } if (str.indexOf("-") == 0) str = str.substr(1); if (/\,/g.test(str)) { str = str.replace(/\,/g, ""); }else if(/-/g.test(str)){ str=str.replace(/-/g,""); } if (str.indexOf('%') != -1) {//如果数中包含百分号 str = str.substr(0, str.length - 1); //str=(parseFloat(str)/100).toString(); if (tempPattern.indexOf('%') == tempPattern.length - 1) { tempPattern = tempPattern.substr(0, tempPattern.length - 1); } }else if (str.indexOf('\u2030') != -1) {//如果数中包含千分号 str = str.substr(0, str.length - 1); if (tempPattern.indexOf('\u2030') != -1) { tempPattern = tempPattern.substr(0, tempPattern.length - 1); } }else { if (tempPattern.indexOf('%') == tempPattern.length - 1) { // str = (parseFloat(str) * 100).toString(); tempPattern = tempPattern.substr(0, tempPattern.length - 1); }else if (tempPattern.indexOf('\u2030') != -1) { //console.log(""); //str = (parseFloat(str) * 1000).toString(); tempPattern = tempPattern.substr(0, tempPattern.length - 1); //console.log("tempPattern"+tempPattern); } } var number = str; var strInt; var strFloat; var formatInt; var formatFloat; if (/\./g.test(tempPattern)) {//判断格式化串中是否包含小数点 formatInt = tempPattern.split('.')[0]; formatFloat = tempPattern.split('.')[1]; } else { formatInt = tempPattern; formatFloat = null; } if (/\./g.test(str)) {//如果要求格式化的数字串是否包含小数部分 if (formatFloat != null) {//如果要求格式化浮点数 var tempFloat = Math.round(parseFloat('0.' + str.split('.')[1]) * Math.pow(10, formatFloat.length)) / Math.pow(10, formatFloat.length); //strInt = (Math.floor(number) + Math.floor(tempFloat)).toString(); strInt = number.toString().split('.')[0]; strFloat = /\./g.test(tempFloat.toString()) ? tempFloat.toString().split('.')[1] : '0'; } else {//不要求格式化浮点数 //strInt = Math.round(number).toString(); strInt = number.toString().split('.')[0]; strFloat = '0'; } } else { strInt = str; strFloat = '0'; } if (formatInt != null) { var outputInt = ''; //找出匹配中零的个数,零用于占位 var zero = formatInt.match(/0*$/)[0].length; var comma = null; if (/,/g.test(formatInt)) { comma = formatInt.match(/,[^,]*/)[0].length - 1; // console.log(comma); } else if (/-/g.test(formatInt)) { comma = formatInt.match(/-[^-]*/)[0].length - 1; } var newReg = new RegExp('(\\d{' + comma + '})', 'g'); if (strInt.length < zero) { outputInt = new Array(zero + 1).join('0') + strInt; outputInt = outputInt.substr(outputInt.length - zero, zero) } else { outputInt = strInt; } //console.log("format"+strInt); if (/,/g.test(formatInt)) { var outputInt = outputInt.substr(0, outputInt.length % comma) + outputInt.substring(outputInt.length % comma).replace(newReg, (comma != null ? ',' : '') + '$1') outputInt = outputInt.replace(/^,/, ''); } else if (/-/g.test(formatInt)) { var outputInt = outputInt.substr(0, outputInt.length % comma) + outputInt.substring(outputInt.length % comma).replace(newReg, (comma != null ? '-' : '') + '$1') outputInt = outputInt.replace(/^-/, ''); } strInt = outputInt; } if (formatFloat != null) { var outputFloat = ''; var zero = formatFloat.match(/^0*/)[0].length; if (strFloat.length < zero) {//当输入的数据的位数小于格式化的位数时加上少的位数 outputFloat = strFloat + new Array(zero + 1).join('0'); var outputFloat1 = outputFloat.substring(0, zero); var outputFloat2 = outputFloat.substring(zero, formatFloat.length); outputFloat = outputFloat1 + outputFloat2.replace(/0*$/, ''); } else {//否则截去多余的部分 outputFloat = strFloat.substring(0, formatFloat.length); } strFloat = outputFloat; } else { if (tempPattern != '' || (tempPattern == '' && strFloat == '0')) { strFloat = ''; } } var temp = strInt + (strFloat == '' ? '' : '.' + strFloat); if (dataPattern.indexOf('%') != -1||inValue.toString().indexOf('%')!=-1) { temp += "%"; } else if (dataPattern.indexOf('\u2030') != -1) { //console.log(pattern); temp += '‰'; //console.log(temp); } return inValue.toString().indexOf("-") == 0 ? ("-" + temp) : temp; } ; |
|||
字符串转日期 | js | ||
// Parse a string and convert it to a Date object. // If no format is passed, try a list of common formats. // If string cannot be parsed, return null. // Avoids regular expressions to be more portable. dateParser = function(val, format) { // If no format is specified, try a few common formats if (typeof(format)=="undefined" || format==null || format=="") { var generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d','MMM-d','d-MMM'); var monthFirst=new Array('M/d/y','M-d-y','M.d.y','M/d','M-d'); var dateFirst =new Array('d/M/y','d-M-y','d.M.y','d/M','d-M'); var checkList=new Array(generalFormats,Date.preferAmericanFormat?monthFirst:dateFirst,Date.preferAmericanFormat?dateFirst:monthFirst); for (var i=0; i<checkList.length; i++) { var l=checkList[i]; for (var j=0; j<l.length; j++) { var d=Date.parseString(val,l[j]); if (d!=null) { return d; } } } return null; }; this.isInteger = function(val) { for (var i=0; i < val.length; i++) { if ("1234567890".indexOf(val.charAt(i))==-1) { return false; } } return true; }; this.getInt = function(str,i,minlength,maxlength) { for (var x=maxlength; x>=minlength; x--) { var token=str.substring(i,i+x); if (token.length < minlength) { return null; } if (this.isInteger(token)) { return token; } } return null; }; val=val+""; format=format+""; var i_val=0; var i_format=0; var c=""; var token=""; var token2=""; var x,y; var year=new Date().getFullYear(); var month=1; var date=1; var hh=0; var mm=0; var ss=0; var ampm=""; while (i_format < format.length) { // Get next token from format string c=format.charAt(i_format); token=""; while ((format.charAt(i_format)==c) && (i_format < format.length)) { token += format.charAt(i_format++); } // Extract contents of value based on format token if (token=="yyyy" || token=="yy" || token=="y") { if (token=="yyyy") { x=4;y=4; } if (token=="yy") { x=2;y=2; } if (token=="y") { x=2;y=4; } year=this.getInt(val,i_val,x,y); if (year==null) { return null; } i_val += year.length; if (year.length==2) { if (year > 70) { year=1900+(year-0); } else { year=2000+(year-0); } } } else if (token=="MMM" || token=="NNN"){ month=0; var names = (token=="MMM"?(Date.monthNames.concat(Date.monthAbbreviations)):Date.monthAbbreviations); for (var i=0; i<names.length; i++) { var month_name=names[i]; if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) { month=(i%12)+1; i_val += month_name.length; break; } } if ((month < 1)||(month>12)){ return null; } } else if (token=="EE"||token=="E"){ var names = (token=="EE"?Date.dayNames:Date.dayAbbreviations); for (var i=0; i<names.length; i++) { var day_name=names[i]; if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) { i_val += day_name.length; break; } } } else if (token=="MM"||token=="M") { month=this.getInt(val,i_val,token.length,2); if(month==null||(month<1)||(month>12)){ return null; } i_val+=month.length; } else if (token=="dd"||token=="d") { date=this.getInt(val,i_val,token.length,2); if(date==null||(date<1)||(date>31)){ return null; } i_val+=date.length; } else if (token=="hh"||token=="h") { hh=this.getInt(val,i_val,token.length,2); if(hh==null||(hh<1)||(hh>12)){ return null; } i_val+=hh.length; } else if (token=="HH"||token=="H") { hh=this.getInt(val,i_val,token.length,2); if(hh==null||(hh<0)||(hh>23)){ return null; } i_val+=hh.length; } else if (token=="KK"||token=="K") { hh=this.getInt(val,i_val,token.length,2); if(hh==null||(hh<0)||(hh>11)){ return null; } i_val+=hh.length; hh++; } else if (token=="kk"||token=="k") { hh=this.getInt(val,i_val,token.length,2); if(hh==null||(hh<1)||(hh>24)){ return null; } i_val+=hh.length; hh--; } else if (token=="mm"||token=="m") { mm=this.getInt(val,i_val,token.length,2); if(mm==null||(mm<0)||(mm>59)){ return null; } i_val+=mm.length; } else if (token=="ss"||token=="s") { ss=this.getInt(val,i_val,token.length,2); if(ss==null||(ss<0)||(ss>59)){ return null; } i_val+=ss.length; } else if (token=="a") { if (val.substring(i_val,i_val+2).toLowerCase()=="am") { ampm="AM"; } else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") { ampm="PM"; } else { return null; } i_val+=2; } else { if (val.substring(i_val,i_val+token.length)!=token) { return null; } else { i_val+=token.length; } } } // If there are any trailing characters left in the value, it doesn't match if (i_val != val.length) { return null; } // Is date valid for month? if (month==2) { // Check for leap year if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year if (date > 29){ return null; } } else { if (date > 28) { return null; } } } if ((month==4)||(month==6)||(month==9)||(month==11)) { if (date > 30) { return null; } } // Correct hours value if (hh<12 && ampm=="PM") { hh=hh-0+12; } else if (hh>11 && ampm=="AM") { hh-=12; } return new Date(year,month-1,date,hh,mm,ss); }; |
|||
日期转换 | |||
/** * 日期转换函数 * * @param {String|Long} inValue 输入值 * @param {String|Null} datePattern日期格式,默认为"yyyy-MM-dd" * @return {String} 转换后的日期格式 */ dateFormat = function(inValue,datePattern){ var date,_t =inValue, retV = datePattern?datePattern:"yyyy-MM-dd"; if((_t=parseInt(inValue,10))+""==inValue){ date = new Date(_t); } else{ return inValue; } //parse month if(retV.indexOf("MM")!=-1){ var m = date.getMonth()+1; m = m<10?"0"+m:m; retV = retV.replace(/MM/g,m); } retV = retV.toLowerCase(); //parse year if(retV.indexOf("yyyy")!=-1){ retV = retV.replace(/yyyy/g,date.getFullYear()); }else if(retV.indexOf("yy")!=-1){ var year4=date.getFullYear(); var year2=year4.toString().substring(2); retV = retV.replace(/yy/g,year2); } //parse day if(retV.indexOf("dd")!=-1){ var d = date.getDate(); d = d<10?"0"+d:d; retV = retV.replace(/dd/g,d); } //parse hours if(retV.indexOf("hh")!=-1){ var h = date.getHours(); h = h<10?"0"+h:h; retV = retV.replace(/hh/g,h); } //parse minute if(retV.indexOf("mm")!=-1){ var mm = date.getMinutes(); mm = mm<10?"0"+mm:mm; retV = retV.replace(/mm/g,mm); } //parse second if(retV.indexOf("ss")!=-1){ var s = date.getSeconds(); s = s<10?"0"+s:s; retV = retV.replace(/ss/g,s); } //week if(retV.indexOf("w")!=-1){ retV = retV.replace(/w/g,"0"); } //if(retV.indexOf("p")!=-1){ //retV = retV.replace(/p/g,"%P"); //} return retV; } |
|||
java自带native2ascii | |||
native2ascii -encoding utf-8 2.properties 3.properties native2ascii -reverse -encoding utf-8 2.properties 3.properties |
|||
ldap | java, ldap | ||
package com.neusoft.ermsuite.sso; import java.util.Properties; import javax.naming.AuthenticationException; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.ldap.LdapContext; public class UserCheckForPortal { private LdapContext ctx = null; //private String baseName = ",OU=ou1,DC=hnyctest,DC=com"; /** * 初始化方法,初始化超级管理员的连接权限 */ public UserCheckForPortal() { } /** * * ldap验证登陆 * @param userDn * String * @param password * String * @return boolean */ public boolean authenticate(String userDn, String password,String ldapUrl,String domain) throws Exception { DirContext ctx1; boolean result = false; try { Properties ldapEnv = new Properties(); ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); ldapEnv.put(Context.PROVIDER_URL, ldapUrl.trim()); ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); String user = userDn.indexOf(domain) > 0 ? userDn : userDn + domain; ldapEnv.put(Context.SECURITY_PRINCIPAL, user); ldapEnv.put(Context.SECURITY_CREDENTIALS, password); ctx1 = new InitialDirContext(ldapEnv); ctx1.close(); result = true; return result; } catch (AuthenticationException e) { e.printStackTrace(); System.out.println(e); System.err.println(e); return false; } catch (NamingException e) { e.printStackTrace(); System.out.println(e); System.err.println(e); return false; } } } |
|||
java策略枚举 | java, enum, strategy pattern(策略模式) | ||
public class EnumTest { public static void main(String args[]) { int result = Calculator.getInstance("+").exec(1, 2); System.out.println(result); result = Calculator.getInstance("-").exec(1, 2); System.out.println(result); } } enum Calculator { // 加法运算 ADD("+") { public int exec(int a, int b) { return a + b; } }, // 减法运算 SUB("-") { public int exec(int a, int b) { return a - b; } }; String value = ""; // 定义成员值类型 private Calculator(String _value) { this.value = _value; } // 获得枚举成员的值 public String getValue() { return this.value; } // 声明一个抽象函数 public abstract int exec(int a, int b); public static Calculator getInstance(String opt) { for (Calculator cal : Calculator.values()) { if (opt.equals(cal.getValue())) { return cal; } } return Calculator.ADD; } } |
|||
xcopy | cmd | ||
xcopy /S /D:09-17-2012 C:\workspace\RMSHNNEW\webApplication\WEB-INF\* D:\xcopy\webApplication\WEB-INF\* |
|||
Solrj查询 | java, solr | ||
import java.net.MalformedURLException; import java.util.Iterator; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.impl.XMLResponseParser; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; public class SolrSearchManager { /** * standard query * * @param args * @throws MalformedURLException */ public static void main(String args[]) throws MalformedURLException { HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr"); server.setSoTimeout(1000); // socket read timeout server.setConnectionTimeout(100); server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); // defaults to false // Server side must support gzip or deflate for this to have any effect. server.setAllowCompression(true); server.setMaxRetries(1); // defaults to 0. > 1 not recommended. server.setParser(new XMLResponseParser()); // binary parser is used by // default SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addSortField("id", SolrQuery.ORDER.asc); try { QueryResponse queryResponse = server.query(query); // SolrDocumentList docs = rsp.getResults(); Iterator<SolrDocument> iter = queryResponse.getResults().iterator(); while (iter.hasNext()) { SolrDocument resultDoc = iter.next(); String id = (String) resultDoc.getFieldValue("id"); // id is the // uniqueKey String name = resultDoc.getFieldValue("text_cn") == null ? "" : (String) resultDoc.getFieldValue("text_cn"); // field System.out.println("name...." + name); // if (queryResponse.getHighlighting().get(id) != null) { // List<String> highlightSnippets = queryResponse // .getHighlighting().get(id).get("content"); // } } } catch (SolrServerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
|||
获取字段 | java, reflection | ||
public static Field getField(Class<?> clazz, String fieldName) { try { return clazz.getDeclaredField(fieldName); } catch (Exception e) { return null; } } |
|||
获取默认构造函数 | java, reflection | ||
public static Constructor<?> getDefaultConstructor(Class<?> clazz) { if (Modifier.isAbstract(clazz.getModifiers())) { return null; } Constructor<?> defaultConstructor = null; for (Constructor<?> constructor : clazz.getDeclaredConstructors()) { if (constructor.getParameterTypes().length == 0) { defaultConstructor = constructor; break; } } if (defaultConstructor == null) { if (clazz.isMemberClass() && !Modifier.isStatic(clazz.getModifiers())) { for (Constructor<?> constructor : clazz.getDeclaredConstructors()) { if (constructor.getParameterTypes().length == 1 && constructor.getParameterTypes()[0].equals(clazz.getDeclaringClass())) { defaultConstructor = constructor; break; } } } } return defaultConstructor; } |
|||
JSON解析(JSON-LIB) | json, java | ||
import java.util.ArrayList; import net.sf.ezmorph.bean.MorphDynaBean; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; import net.sf.json.util.JSONTokener; public class JSONLibTest { public static void main(String args[]) { //针对数组的解析 String param= "[{'userid':'用户名1','telNum':'手机号1','taskid':'任务标识1','sms':'短信1'},{'userid':'用户名2','telNum':'手机号2','taskid':'任务标识2','sms':'短信2'}]"; JSONArray array = JSONArray.fromObject(param); ArrayList list = (ArrayList) JSONSerializer.toJava(array); if(list.size()>0){ for(int i=0 ; i<list.size();i++){ MorphDynaBean obj = (MorphDynaBean)list.get(i); System.out.println((String) obj.get("userid") + obj.get("telNum") + obj.get("taskid") + obj.get("sms")); } } //针对一般数据的解析 String param2 = "{'userid':'用户名1','telNum':'手机号1','taskid':'任务标识1','sms':'短信1'}"; JSONTokener jsonParser = new JSONTokener(param2); // 此时还未读取任何json文本,直接读取就是一个JSONObject对象。 JSONObject object = (JSONObject) jsonParser.nextValue(); System.out.println(object.getString("userid") + object.getString("telNum") + object.getString("taskid") + object.getString("sms")); } } |
|||
类型在JVM中的定义 | |||
int I void V boolean Z char C byte B short S float F long L double D array [.... 比如[Ljava/lang/String; 表示String数组 其他对象 L....; 比如Ljava/lang/Object; 表示java.lang.Object 方法(参数列表...)返回值类型 比如(Ljava/lang/String;)V 表示该方法有一个类型为String的参数,返回值为void类型 构造函数 (参数列表...)V 比如()V 表示默认构造参数 |
|||
Ajax调用 | ajax | ||
/** * 方法名:httpGet * 参数:http Xmlhttp对象;url 要检测页面的URL * 返回值:整个页面的HTML或者为空字符串 * 方法说明:利用xmlhttp对象去判断相应的URL所指向的页面,是否存在 * 调用示例如下:httpGet(xmlhttp," http://localhost:6767/t4new/tr/cheque/checkIn/CheckInList.do") */ function httpGet(http,url) { var strRet = ""; if(url.length!=0) { http.open("GET",url,false); http.send(); strRet = http.responseText; } strRet = trimNC(strRet); if (strRet.length==0) { alert("系统查询失败!"); return ""; } return strRet; } //add by xlc post 提交 function httpPost(http,url,param) { var strRet = ""; if(url.length!=0) { http.open("POST",url,false); http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); http.send(param); strRet = http.responseText; } strRet = trimNR(strRet); if (strRet.length==0) { return "N"; } return strRet; } |
|||
ROWNUMBER OVER() | database(数据库), sort(排序) | http://blog.csdn.net/wangjiang87/article/details/5391600 | |
--oracle SELECT ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) SEQ,T.* FROM ... T; -- oracle 取前10条数据 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ...) SEQ, T.* FROM ... T) TEMP WHERE TEMP.SEQ < 11; --db2 SELECT ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) SEQ,T.* FROM ... T; 或 SELECT ROWNUMBER() OVER (PARTITION BY ... ORDER BY ...) SEQ,T.* FROM ... T; --db2取前10条数据 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ...) SEQ, T.* FROM ... T) TEMP WHERE TEMP.SEQ < 11; 或 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ...) SEQ, T.* FROM ... T) AS TEMP WHERE TEMP.SEQ < 11; 或 SELECT * FROM (SELECT ROWNUMBER() OVER(ORDER BY ...) SEQ, T.* FROM ... T) TEMP WHERE TEMP.SEQ < 11; 或 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ...) SEQ, T.* FROM ... T) AS TEMP WHERE TEMP.SEQ < 11; |
|||
Excel读取 | excel, poi | ||
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class Excel { public static void main(String args[]) { try { File formFile = new File("d:\\test.xls"); InputStream is = new FileInputStream(formFile); HSSFWorkbook workbook = new HSSFWorkbook(is); HSSFSheet sheet = workbook.getSheetAt(0); int rows = sheet.getPhysicalNumberOfRows(); for (int r = 0; r <= rows; r++) { HSSFRow row = sheet.getRow(r); if (row != null) { int cells = row.getPhysicalNumberOfCells(); String value = ""; for (short c = 0; c < cells; c++) { HSSFCell cell = row.getCell(c); if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_FORMULA: value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { value = HSSFDateUtil.getJavaDate( cell.getNumericCellValue()) .toLocaleString().substring(0, 10); } else { value = (long) cell.getNumericCellValue() + ""; } break; case HSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; default: value = ""; } System.out.println(value); } } } } } catch(IOException e) { e.printStackTrace(); } } } |