zoukankan      html  css  js  c++  java
  • 2015年工作中遇到的问题:51-60

    51.在mysql数据库中,空值和null值是不同的。
    mysql-front这个mysql数据库管理工具,看得比较明显,空""字段的背景色是“白色”,null字段的背景色是“灰绿色”。
    可以右键,删除这个字段,把空变为null。

    52.TOMCAT开放远程调试端口。

    在eclipse中怎么设置条件断点。
    a.在你要想停下的行上添加断点 
    b.在断点标记上单击右键,然后打开断点属性(breakpoint properties...) 
    c.在断点属性(breakpoint properties...)编辑对话框中勾选enable condition,并加入你的条件

    通过Eclipse,也可以使用本地代码,远程调试线上的Web应用。
    目前忘记了,在秒针工作的时候的Boss告诉我的,今后有需要再学习。

    JVM远程调试,debug可以加条件(比如uid=2000),防止线上用户无法正常访问~。

    53.Freemarker生成Table,每行放4个元素,1个小算法。
    关键点:遍历过程中,当前索引为 item_index,item是元素取的名字。
    % 为取模运算
    第1个元素,<tr>
    最后1个元素,本例中为第4个,</tr>
    中间几个元素,只显示内容

    如果不足4个,最后不足“</tr>”

    <table>
    <#list privilegeList as item>
      <#if (item_index+1)%4 ==1>
      <tr> <td>${item.name}<input type="checkbox" name="privilegeStr" value="${item.acl}"/>&nbsp;</td>
      <#elseif (item_index+1)%4 ==0>  
        <td>${item.name}<input type="checkbox" name="privilegeStr" value="${item.acl}"/>&nbsp; </tr>
      <#else>
        <td>${item.name}<input type="checkbox" name="privilegeStr" value="${item.acl}"/>&nbsp;
      </#if>
       </#list>
        <#if privilegeList?size%4!=0></tr></#if>
    </table>

    54.数据库命名规范的问题。
    uid,userId,user_id。
    之前还在考虑多个单词的时候,用userId,可以很方便地转换成Java变量。
    但是呢,今天问了下Boss,说到Oracle的字段区分大小写可能不支持。
    为了方便迁移,引起不必要的错误,不用userId这种写法。

    最近几年一直在用mysql,mysql支持userId混合大小写,Oracle是否支持不太确定。
    部分网友认为,Oracle不支持或者需要建表时特殊处理。
    由于自己没有Oracle,又为了养成好的习惯,还是用uid或者user_id这种形式命名数据库字段吧。

    55.一条流水的操作,可能是前端用户,也可能是管理员,也可能是系统。
    京东购物,区分了客户和系统,我觉得这样做挺好的。

    56.SpringMVC接收参数疑问。
    bean的每一个get方法都被调用了。
    get和set有关系,可能是get方法影响到set方法的调用。
    public class TestForm {
    private Money amount;
    }
    public class Money
    long cent =0;

    public long getCent() {
    return cent;
    }

    public void setCent(long cent) {
    this.cent = cent;
    }
    public long getIntegerPart() {
    return cent/100;
    }
    public Long getPart() {
    return null;
    }
    public void setPart(Long intPart){
    this.cent = intPart*100;
    }
    }

    问题,字段只有1个cent,普通的get和set方法正常。
    现在的需求是,有的时候,资金直接接收integer部分,或者double部分,
        如果再增加一个字段,必须维护一个数据的多种形式,同步比较麻烦。
    因此,最初尝试的方法是,不增加字段,直接增加另外一种形式的get和set方法,比如
    getIntegerPart,setIntegerPart。
    setIntegerPart总是失败,不会被调用。如果去掉getIntegerPart,setIntegerPart正常。
    经过实践发现,get方法,如果值是long类型的0,就不再调用setIntegerPart。
    如果把getIntegerPart的返回值改成Long类型,就正常了。
    通过增加get方法并且返回值Long而不是long,但不增加字段,解决了这个问题,但是的但是啊,
    为什么long和Long不一样,SpringMVC的代码又很难看懂,只能“知其然不知其所以然”。
    57.update与case when语法,Boss犯了一个小错误。
     
    一个文章的置顶按钮,如果文章的当前状态置顶,点击按钮则取消置顶,反之则将文章设置为置顶状态,数据库中使用1表示置顶状态,反之用0表示,实现该功能的SQL语句如下:

    SQL Server:sql = "update Article set IsTop= (case when IsTop='0' then '1' else '0' end) where Id=" + id + "";

    Boss漏掉了那个“end”。
    最好加个括号,看起来比较清楚。



    58.互联网服务通过Nginx实现“灰度发布”。
    Boss经常会谈及阿里的一些运维等做法,我只是看新闻了解过,听他说说,也记下来。
    如果有需要,就尝试一下。

    至少起2台服务,一台挂了,可以切换到另外一台。同一个机房,也不够保险,万一机房之类的断网或断电,
    还是直接跪,因此不同地域至少2台,是比较靠谱的。


    业界,还有一个“灰度发布”的概念,就是系统升级,不停止服务。
    具体做法是,先停止其中的1台服务,升级,重启,没问题之后。
    再以此类推,升级下一台服务。

    59.阿里云监控,为什么总是出问题呢?
    监控配置错了:如果 http.status 连续3次 >= 200 就通知。
    操作符应该选择“>”,而不是“>=”。
    改成:如果 http.status 连续3次 >= 400 就通知。

    60.上传图片,需要先创建相关目录。
    idCardImageUploadPath = C:/home/whptp/upimg/yiqihao/idcard/
    必须首先创建这些目录,否则直接在程序中存储图片,可能会提示找不到路径。
    妈蛋,“C:homewhptpupimgyiqihao”手动去创建这个目录,结果漏掉了一个字母,搞了半天,一直看不到图片。
  • 相关阅读:
    mysql where条件通过 regexp 正则来匹配查询数据
    mysql 面试实战
    mysql 面试
    MySQL常见面试题
    mysql面试
    Groovy安装
    Redis-(error) MISCONF Redis is configured to save RDB snapshots
    ubuntu 下openoffice安装
    Android 多屏幕适配 dp和px的关系
    linux 相关知识
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462880.html
Copyright © 2011-2022 走看看