zoukankan      html  css  js  c++  java
  • 2013年工作中遇到的20个问题:241-260

    241.DAO层很多代码都是重复的。
    分页:记录列表,多少条记录;
    是否授权:授权的,没授权的。
    一定要写一个功能强大的高度复用的BaseDao,大大减少重复代码。

    242.SQL语句in有个数限制。

    这问题在这有描述 2013年工作中遇到的20个问题:201-220,第220个。

    http://blog.csdn.net/fansunion/article/details/12046259
    //当in语句的id个数太多的时候,Oracle、MySQL等数据库不支持。

    select ... from a where col in (select ... from b where b.col='')
    一种高效率的解决办法是使用exists语句。
    select ... from a where exists ( select 1 from b where a.col = b.col and b.colxx='')

    //我写了个错误的例子,TUser  和VisitLog应该有个关联条件
    select * from TUser where exists(select 1 from VisitLog where id = 492); 如果只是写这1条语句 有意义么??

    其实这个语句若把链接条件加上
    它就是一个链接查询
    类似于select a.* from a inner join b on a.col=b.col where b.id = 492)

    243.不同数据库日期函数用法不同。

    将日期减少1年的函数:
    SQLServer中的用法是select DateAdd(m, -1 , startTime)。

    MySQL中的用法是select DATE_ADD(startTime,INTERVAL -1 MONTH)。

    参考资料:http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.html

    本来我在考虑是否可以先把日期获取出来,再用Java函数-1个月,发现太麻烦了。

    244.CSDN在文章中插入代码。
    博客编辑器可以选择插入Code,而且可以选择编程语言的类型,如C++/Java等。
    注意排版,方便读者,也方便了自己。

    245.Linux服务器安全性。
    公司线上的服务器不能通过自己的电脑直接SSH连接,需要先SSH到一台中转电脑(比如测试环境的Linux),
    然后通过中转电脑SSH到线上服务器。
    这样,大大提高了Linux服务器的安全性。
    对公司的线上服务器来说,安全实在是太重要了。

    246.MySQL Localhost匿名登录。
    今天登录了公司的服务器,直接在Linux命令行下输入mysql就自动登录成功了。
    以前还不知道。
    为了下boss,这是MySQL支持的本机匿名登录功能。
    我擦,以前看数据库表的时候,确实有一些支持匿名用户访问的记录,原来是这么回事。
    高端啊。

    247.Linux服务器常用软件安装。
    公司要上线一个新项目,需要在Linux服务器上部署mysql,apache,tomcat,redis等环境。
    我以前只在自己的云主机上部署了JDK,MySQL,Apache,Tomcat等,Redis没有弄过。

    对于开发人员来说,懂运营部署还是非常必要的。

    248.Linux下启动Tomcat并查看启动信息。
    常用却不够犀利的用法:
    ./startup.sh
    看不到启动信息

     $TOMCAT_HOME为tomcat安装目录
    在linux如果按$TOMCAT_HOME/bin/startup.sh来起动tomcat则得不到象windows一样的控制台效果,查看日志很不方便.
    是不是linux下没有象windows下一样的控制台呢,不是的,只是大家都习惯这样来启动它。
    在LINUX下如何使启动TOMCAT后象WINDOWS一样呢?,解决办法如下:
    $TOMCAT_HOME/bin/catalina.sh run
    象这样来运行它就得到象windows一样的控制台了
     
    cd到Tomcat的bin 目录
    ./catalina.sh run(这种方式也有弊端,不能关闭shell窗口。关闭窗口,会导致Tomcat关闭。)

    另外更好的方式

    ./bin/startup.sh && tail -f catalina.out

    或tail -f catalina.out(也会动态更新)

    #下面这种方式总是提示找不到命令
    catalina.sh run
                    
    249.cp默认带了 -i参数,需要首先取消cp的别名。
    有的系统在安装的时候,cp - i 的 alias 就是 cp也就是说你在执行cp的时候,其实是执行的cp -i
    这样,复制文件夹的时候,如果出现重复的文件,可费劲了。
    unalias cp

    http://zhidao.baidu.com/link?url=idgm0NqvHOd2H7joY-1qTu5P0TgetjL5IMjm4nW9YdgeUKMdr0lmXD2Y-qPOCMXJmyrsBc4iK1E89xmachCkwq

    250.MySQL-Front自带数据导入功能。
    选择表格-右键-输入,支持CSV、Excel、XML等格式,这些文件应该有一定的规律。
    可以是以下形式。
    id    projectId
    1    16

    251.MultiValueMap也不是完全理想的数据结构。
    MultiValueMap map = new MultiValueMap();
    map.put(1, 1);
    map.put(1, 2);
    map.put(1, 1);
    map.put(2, 1);
    map.put(2, 2);
    map.put(2, 1);
    value的值也需要去重。
    1,[1,2]
    2,[1,2]

    项目中需要的数据结构是,唯一的key,并且唯一key的多个value也不能重复。

    252.环比和同比的区别。
    与上一统计段比较,例如2005年7月份与2005年6月份相比较,叫环比。
    与历史同时期比较,例如2005年7月份与2004年7月份相比,叫同比。

    环比增长率=(本期数-上期数)/上期数×100% 反映本期比上期增长了多少;
    环比发展速度,一般指是指报告期水平与前一时期水平之比,表明现象逐期的发展速度。
    环比=(本统计周期数据/上统计周期数据)×100%。
     
    253.更新网站小图标,需要清除浏览器缓存。
    搜狗和QQ浏览器小图标缓存的位置。
    C:UsersFansAppDataRoamingSogouExplorerFavIcon
    C:UsersFansAppDataRoamingTencentQQBrowsericons

    254.JavaDoc指定编码。
    -encoding utf-8 -charset utf-8  

    255.Commit之后,Rollback不再有效。

    256.Hibernate打印sql语句影响性能。
    10万条 10分钟。打印sql语句。
    不显示sql语句,只要7分钟。

    打印sql语句是需要IO操作的,而笔记本的IO一般般。

    此外,以前,根据实际工作经验证实了,Struts2开发模式devMode下,效率大大降低。

    257.Maven工程CLASSPATH的2种情况。
    Maven项目的结构
    src/main/java
    src/main/resources

    src/test/java
    src/test/resourcs

    当正常运行程序的时候,CLASSPATH指的是src/main/java和src/main/resources这2个路径。
    当单元测试执行的时候,CLASSPATH指的是src/test/java和src/test/resources这2个路径,
    如果找不到资源文件,比如struts.xml,则还会去src/main/java和src/main/resources这2个路径找。


    如果正常执行和单元测试执行,需要的配置信息完全一样,可以只维护一份。
    或者那些完全相同的配置,只维护一份。

    不同的配置,维护2份。
    (这可是我认真分析了好久才发现的,千万要理解呀)

    258.MySQL同一个用户的密码竟然可以不一样。

    mysql-user。
    Host,User,Password
    同样都是root,密码是可以不一样的。只要使用host(访问来源的主机)不一样就可以了。

    localhost,root,123
    fansunion.cn,root,456

    我通过本机MySQL-Front直接连接远程MySQL,通过Putty连到远程主机-再连接MySQL,
    同一样是root用户,一个是123,一个是456。
    看了下mysql-user表的数据,才知道这个问题。

    259.当数据库表中的数据有很多的时候,比如600万,修改列的名字等操作比较耗时。

    260.将查询结果插入到表中。
    DataResource表中的数据量很大。
    insert into DataResource2
    (select * from DataResource where id >0 and id < 600000);
    这个sql语句的效率很高。

    我新建了一个临时表DataResource2,每次同步一些数据到DataResource2,然后进行测试,
    如果没有问题,再直接对DataResource中的数据进行处理。

    相关阅读

    工作问题 http://blog.csdn.net/FansUnion/article/category/1334371

  • 相关阅读:
    jquery操作cookie
    javascript数组(五)
    javascript var变量删除
    javascript 语句和严格模式(三)
    javascript 表达式和运算符 (二)
    javascript类型判断
    javascript 六种数据类型(一)
    计算机网络之网络排查(四)
    计算机网络封装解封装(三)
    计算机网络—从输入网址到显示网页的过程(二)
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463533.html
Copyright © 2011-2022 走看看