zoukankan      html  css  js  c++  java
  • 2014java基础笔记

    String.split(".")为null问题

    “.”是正则表达式里面的关键字,因此这里会出错。
    解决方法:用StringTokenizer替换
    java.util.StringTokenizer token = new java.util.StringTokenizer(String,".");
    token.nextToken()

    获取3位数字,前面补零

           int youNumber = 1;      
            // 0 代表前面补充0      
            // 3 代表长度为3      
            // d 代表参数为正数型      
            String str = String.format("%03d", youNumber);      
            System.out.println(str); // 0001  
    <h2>数字格式化</h2><p>java.text.NumberFormat</p><p>示例:</p><p>NumberFormat NumFmt = NumberFormat.getInstance();</p><p>NumFmt.setMaximumFractionDigits(0);</p><p>NumFmt.setMinimumIntegerDigits(2);</p><p>System.<span style="color:rgb(0,0,192);">out</span>.println(NumFmt.format(80934.234));<span style="color:rgb(63,127,95);">//80,934</span></p>
    

    将前台JSON对象发送给后台

    页面js:

    XControl.ruleGroup.rules = {
            id:4,
            officeId:"can911",
            airCode:"cx",
            channels:[{
                channel: 'User list',
            groupId: 4,
            rules: [
            {id: 1, channel: 'Anne'},
            {id: 2, channel: 'Amelie'}
        ]},{
            channel: 'User list',
            groupId: 4,
            rules: [
            {id: 1, channel: 'Anne'},
            {id: 2, channel: 'Amelie'}
        ]}]};
    
    //将JSON数组格式化,这一步是必要的
    
    var xControlVO = JSON.stringify(XControl.ruleGroup.rules);
        //特殊符号保存不了问题
        var result = "";
        for(var i=0;i<xControlVO.length;i++){
            if(xControlVO.charAt(i)=="+"){
                result += "%20";
            }else if(xControlVO.charAt(i)=="/"){
                result += "%2F";
            }else if(xControlVO.charAt(i)=="?"){
                result += "%3F";
            }else if(xControlVO.charAt(i)=="%"){
                result += "%25";
            }else if(xControlVO.charAt(i)=="#"){
                result += "%23";
            }else if(xControlVO.charAt(i)=="&"){
                result += "%26";
            }else{
                result += xControlVO.charAt(i);
            };
        } 
    //发送post请求
    $.post("/iControl/Control/xControl/saveOrUpdate.action", { xControlVO:xControlVO }, function (data) {  
                alert(data);  
            });  

    后台:

    利用jackson的ObjectMapper实现对象的转化

    @Write(type = WriteType.JSON)
        @Action(value = "saveOrUpdate")
        public JSONObject saveOrUpdate(@Params(key="xControlVO") String xControlVO){
            try {
                ObjectMapper mapper = new ObjectMapper();  
                XControlVO vo = mapper.readValue(xControlVO,XControlVO.class);//转成map  
                xControlService.saveORupdate(vo);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

    js判断值是不是undefined

    if (typeof(reValue) == "undefined") {
       alert("undefined");
    }

    js克隆数组和对象

    /**
     * 克隆数组
     */
    Utils.cloneArray = function(arrayObj) {
        var array = new Array();
        for (var i = 0, l = arrayObj.length; i < l; i++) {
            array.push(Utils.cloneObj(arrayObj[i]));
        }
        return array;
    }

    /**
     * 克隆对象
     */
    Utils.cloneObj = function (obj) {
        var objClone = null;
        if (obj.constructor == Object) {
            objClone = new obj.constructor();
        }else {
            objClone = new obj.constructor(obj.valueOf());
        }
        for (var key in obj) {
            if (objClone[key] != obj[key]) {
                if (typeof (obj[key]) == 'object') {
                    if (obj[key] instanceof Array) {
                        objClone[key] = Utils.cloneArray(obj[key]);
                    }else{
                        objClone[key] = Utils.cloneObj(obj[key]);
                    }
                }else {
                    objClone[key] = obj[key];
                }
            }
        }
        objClone.toString = obj.toString;
        objClone.valueOf = obj.valueOf;
        return objClone;
    }


    监听Ctrl键按下释放:

    $("body").keydown(function (event1) {
            try {
                var key = event1.which;
                if (key == 17) {
                  //todo
                }
            }catch(err){}
        });
        $("body").bind('keyup',function (event) {
            try {
                var key = event.which;
                if (key == 17) {
                    //todo
                }
            }catch(err){}
        });


    1Oracle时间数据保存,后天看到只保存年月日,没有日分秒,因此排序的时候不能准确排序

    解决:

    1.1 数据库将该字段格式改为TimeStamp类型

    1.2 @Temporal(TemporalType.TIMESTAMP)  

    @Column(name = "LAST_MODIFIED_TIME", length = 7)

    public Date getLastModifiedTime() {

    return this.lastModifiedTime;

    }

    public void setLastModifiedTime(Date lastModifiedTime) {

    this.lastModifiedTime = lastModifiedTime;

    }

    2String key=””; //拼接失败,此字符串为空或者空白不能拼接

    for(String city:citys){

    key.concat(city);

    }

    for(String date:dates){

    key.concat(date);

    }

    key = key.concat(airCompany);

    修改为:

    StringBuffer sbf = new StringBuffer();// 拼接qte缓存的key

    for (String tempCity : citys) {

    sbf.append(tempCity);

    }

    for (String tempDate : dates) {

    sbf.append(tempDate);

    }

    String key = sbf.toString();

    key = key.concat(airCompany);

    3、查询结果大小

    BigDecimal rowCount = (BigDecimal) query.uniqueResult();

    return rowCount.intValue();

    代替:int size = query.list().size();

    return size;

    3、存储过程操作

    public Long copyAirline(Long airLineId) {

    Connection conn=null;

    CallableStatement cstmt=null;

    try {

    JdbcTemplate jdbcTemplate=this.getJdbcTemplate();

    conn=jdbcTemplate.getDataSource().getConnection();

    String spName="{call sp_copy_policy_airline(?,?)}";  

    cstmt=conn.prepareCall(spName);  

    cstmt.setLong(1, airLineId);

    cstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.NUMBER);

    cstmt.execute();

    return cstmt.getLong(2);

    catch (Exception e) {

    e.printStackTrace();

    log.error(e, e);

    }finally{

    try {

    if(conn!=null){

    conn.close();

    }

    catch (Exception e) {

    e.printStackTrace();

    }

    }

    return null;

    }

    存储SQL,复制存储过程思想,先将需要复制的数据copy到临时表,更新临时表的主键、外键及需要更新的信息,再将临时表数据插入原始表

    create or replace 

    procedure sp_copy_policy_airline(airlineid in number,newairlineid out number) is

      v_airlineid number;

    Begin

      v_airlineid :=SEQ_POLICY_AIRLINES.NEXTVAL;序列的下一个值

      insert into IFL_POLICY_AIRLINES_COPY (select G.*,v_airlineid from IFL_POLICY_AIRLINES G where G.POLICY_AIRLINE_ID = airlineid);

      commit;

     --更新各表外键

      update IFL_POLICY_AIR_PARTS_COPY COPYH set policy_airline_id = (select newId from IFL_POLICY_AIRLINES_COPY COPYG where COPYH.policy_airline_id =COPYG.policy_airline_id and rownum <= 1);  

    --更新各表主键

      update IFL_POLICY_AIR_PARTS_COPY set AIR_PART_ID = newId;

    --将复制表中的信息插入到原始表

      insert into IFL_POLICY_AIRLINES (POLICY_AIRLINE_ID,AIRLINE_CODE,POLICY_ID,TAKEOFF_AIRPORTS,ARRIVE_AIRPORTS,FROM_IS_OJ,TO_IS_OJ,TIME_OFFSET,TCODE,

        CLAUSE_ID,CLAUSE_CODE,ALLOW_STOPOVERS,STOPOVERS_TYPE,ALLOW_FLIGHT,NOT_ALLOW_FLIGHT,ALLOW_SHARE_FLIGHT,IS_MARRIAGE,GO_STOPOVERS_TIME,GO_STOPOVERS_FEES,

        GO_STOPOVERS_FEES_UNIT,GO_FREE_STOPOVERS_TIME,BACK_STOPOVERS_TIME,BACK_STOPOVERS_FEES,BACK_STOPOVERS_FEES_UNIT,BACK_FREE_STOPOVERS_TIME,GO_ALLOW_TIME,

        BACK_ALLOW_TIME,GO_NOT_ALLOW_TIME,BACK_NOT_ALLOW_TIME,TAKEOFF_AREA_TYPE,ARRIVE_AREA_TYPE,START_POINT_CODE,FINISH_POINT_CODE,AIRLINETYPE)

        select POLICY_AIRLINE_ID,AIRLINE_CODE,POLICY_ID,TAKEOFF_AIRPORTS,ARRIVE_AIRPORTS,FROM_IS_OJ,TO_IS_OJ,TIME_OFFSET,TCODE,CLAUSE_ID,CLAUSE_CODE,

        ALLOW_STOPOVERS,STOPOVERS_TYPE,ALLOW_FLIGHT,NOT_ALLOW_FLIGHT,ALLOW_SHARE_FLIGHT,IS_MARRIAGE,GO_STOPOVERS_TIME,GO_STOPOVERS_FEES,GO_STOPOVERS_FEES_UNIT,

        GO_FREE_STOPOVERS_TIME,BACK_STOPOVERS_TIME,BACK_STOPOVERS_FEES,BACK_STOPOVERS_FEES_UNIT,BACK_FREE_STOPOVERS_TIME,GO_ALLOW_TIME,BACK_ALLOW_TIME,

    GO_NOT_ALLOW_TIME,BACK_NOT_ALLOW_TIME,TAKEOFF_AREA_TYPE,ARRIVE_AREA_TYPE,START_POINT_CODE,FINISH_POINT_CODE,AIRLINETYPE from IFL_POLICY_AIRLINES_COPY;

    update IFL_POLICY_FILES D set LAST_MODIFIED_TIME = SYSDATE() where D.policy_Id = (select G.policy_Id from IFL_POLICY_AIRLINES G where G.policy_airline_id = airlineid);

    newairlineid := v_airlineid;

    commit;

    DELETE FROM IFL_POLICY_AIRLINES_COPY;

    commit;

    end;

    4Oracle 正则表达式函数-REGEXP_REPLACE

    需要替换掉数据库LIMITE_INFORMATION字段字符串中的owPriceSource的值

    {"stayTime1":"","stayTime2":"","owPriceSource":"1520","rtPriceSource":"2600"}

    update IFL_POLICY_BUNKS set LIMITE_INFORMATION = regexp_replace(LIMITE_INFORMATION,'"owPriceSource"s*:s*"([^\"]|[\]["]|([\][\]))*"','"owPriceSource":"1234"') where POLICY_BUNK_ID in (:POLICY_BUNK_ID_PARAM)

    解决session超时操作有误问题,设置成返回登录页面

    //302表示session超时,退回登陆页面
    $.ajaxSetup({complete:function(xhr,textStatus){
    if (xhr.status == 302) {
    window.open(xhr.getResponseHeader("Location"));
    }
    }});

    表单内容重复保存问题

    <form id="priceId" method="post">
    initEvent:function(){
       $("#priceId").change(function() {
        $("#priceId").data('changed', true);//from有修改,将状态设成true
        });
    }
    if($("#priceId").data('changed')){

    结束日期大于开始日期验证问题

    endDate : {
    validator : function(val, param) {
    var startDate = $(param[0]).val();
    var endDate = $(param[1]).val();
    var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;  //日期验证
    if(reg.test(endDate)){
    endDate = endDate.replace("-", "");
    endDate = endDate.replace("-", "");
    startDate = startDate.replace("-", "");
    startDate = startDate.replace("-", "");
    return parseInt(endDate) >= parseInt(startDate);
    }else return false;
    },
    message : "格式不正确、结束日期应应>=开始日期"
    },

    复制页面不能弹出窗口

    var newwindow=window.open("about:blank");//先打开一个空白页,在填充
    $.getJSON("/iPolicy/policy/extrapart/saveCopyExtraPartById.action",{extraPartId:selectedId},function(data){
    policyTable.reload();
    selectedId = data.id;
    var url = "edit.html?extraPartId=" + selectedId+"&title=f";
    newwindow.location.href=url;
                           newwindow.focus();
                           return false;
       });

    防止表单重复提交,思想:提交的时候放入变量,成功的时候去除

    success : function(data) {
    $this.data("submiting",false); 
    if (options.onsuccess) {
    options.onsuccess(data);
    }
    }
    $this.submit(function() {
    if($this.data("submiting")){
    return false;
    }

    $this.data("submiting",true);
    }

    文本框或输入框细节,鼠标离开显示”审核通过“,点击消失

     onFocus="if(this.value=='审核通过'){this.value=''}"  

     onBlur="if(this.value==''){this.value='审核通过''}"

    列表字段过长,隐藏过长部分,鼠标经过显示全部

    startAreaCode=startAreaCode.length>20?startAreaCode.substring(0,20)+"...":startAreaCode;
     "<td title='"+titleEndAreaCode+"'>到达地:"+endAreaCode+"</td>"


  • 相关阅读:
    What is OpenOCD?
    OpenOCD Debug Adapter Configuration
    OpenOCD 0.9.0 release
    ARM DEBUGGER FOR NEARLY ONE DOLLAR
    SW-DP (Serial Wire Debug Port) Analyzer plugin for the Saleae Logic
    SWD Connect/Transfer Source Code
    Dapper Miser implementation of CMSIS-DAP, MC HCK as SWD Adapter
    STM32定时器级联 -- AN2592
    Training JTAG Interface
    JTAG Simplified
  • 原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266278.html
Copyright © 2011-2022 走看看