`
收藏列表
标题 标签 来源
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();
        }
    }
}
Global site tag (gtag.js) - Google Analytics