当前位置: 首页 > news >正文

2013年工作中遇到的20个问题:241-260

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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:\Users\Fans\AppData\Roaming\SogouExplorer\FavIcon
C:\Users\Fans\AppData\Roaming\Tencent\QQBrowser\icons

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

 

转载于:https://my.oschina.net/jiutianniao/blog/399607

相关文章:

  • 读书笔记(九)--三分做事,七分做人
  • I.MX6_Linux_UART_devicedriver_hacking
  • QCon讲师对对碰——梁宇鹏访洪小军:创业公司招人是个事儿
  • 图形学:图像围绕着某个点P(a,b)旋转------白话版
  • Python的基本配置
  • 使用jvisualvm.exe 的Btrace插件介绍/使用教程
  • [Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作...
  • Oracle数据库的安装详解
  • Generate And Play A Tone In Android hacking
  • SharePoint 2013实例1—构建三层服务器场10—功能验证
  • MLlib中的vector和线性代数运算
  • HNOI2015 开店
  • LeetCode - Count Primes
  • mysql基础操作(表复制、索引、视图、内置函数、预处理、存储过程、触发器)
  • 深入解析AMS启动
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • maven工程打包jar以及java jar命令的classpath使用
  • Mybatis初体验
  • python学习笔记-类对象的信息
  • spark本地环境的搭建到运行第一个spark程序
  • uva 10370 Above Average
  • 分布式任务队列Celery
  • 复杂数据处理
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 模型微调
  • 区块链技术特点之去中心化特性
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 想写好前端,先练好内功
  • 小程序测试方案初探
  • 小程序开发中的那些坑
  • 移动端 h5开发相关内容总结(三)
  • 在Docker Swarm上部署Apache Storm:第1部分
  • hi-nginx-1.3.4编译安装
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​flutter 代码混淆
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (第61天)多租户架构(CDB/PDB)
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (译)2019年前端性能优化清单 — 下篇
  • (转)程序员技术练级攻略
  • ****Linux下Mysql的安装和配置
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET DataGridView数据绑定说明
  • .NET 发展历程
  • .net 后台导出excel ,word
  • .NET 设计一套高性能的弱事件机制
  • .NET 中的轻量级线程安全
  • .net6使用Sejil可视化日志
  • .Net多线程总结
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET微信公众号开发-2.0创建自定义菜单