开发易错点收集
Posted 杨瀚博
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发易错点收集相关的知识,希望对你有一定的参考价值。
个人开发知识点收集
1.java
- 比较字符串内容是否相等,需要使用方法 boolean java.lang.String.equals(Object arg0),直接使用 == 判断的是两个串的地址是否相等。
- jvm加载jar是按照文件名排序后加载的,加载一次后不会重复加载。也就是说程序目录lib中同时存在 TestJar1.jar 和 TestJar2.jar,运行时加载的是TestJar1.jar
- ojdbc 与 Oracle 版本 https://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_01
-
Oracle Database version JDBC Jar files specific to the release 18.3 ojdbc8.jar with JDK8, JDK9, JDK10, JDK11 12.2 or 12cR2 ojdbc8.jar with JDK 8 12.1 or 12cR1 ojdbc7.jar with JDK 7 and JDK 8
ojdbc6.jar with JDK 611.2 or 11gR2 ojdbc6.jar with JDK 6, JDK 7, and JDK 8
(Note: JDK7 and JDK8 are supported in 11.2.0.3 and 11.2.0.4 only)
ojdbc5.jar with JDK 5
2.javascript
- \'\'==0 返回为true ,用全等返回false,对于喜欢用if(xxx){}这种方式,或者喜欢使用三目运算符,需要考虑这些特殊情况。
- replace 是一个很好用的方法,并且支持正则
如果替换内容是一个正则表达式,函数中每一个分组会生成一个参数
dom offsetWidth clientWidth 区别是后者不包含 border
- 鼠标对象 MouseEvent 中 clientX,offsetx,pagex,screenx区别 https://blog.csdn.net/lzding/article/details/45437707
3.C#
- linq是一个很好的语法模式,不过语法有时很难记住,如果通过linq查询一个DataTable,下边是一个Linq的分组查询
4.PL/SQL
- 数字类型千分位 格式 \'FM999,999,999,999,999,990.00\'
- 树形抽数
SELECT f_Parentnodeid, f_externalunitid, LEVEL lvl FROM tb_base_externalunit START WITH f_externalunitid = v_F_EXTERNALUNITID CONNECT BY PRIOR f_Parentnodeid = f_externalunitid
查询oralce字符集
SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = \'CHARACTERSET\'
防止Select INTO出现找不到数据异常
select count(*) ,max(id) into a, b from xx ;
然后通过 a =0 判断是否有数据,省去找不到数据的异常捕获
substr拆分字符
select substr(\'abc\',level,1) from dual connect by level <= 3
特殊字符分隔拆分
select regexp_substr(\'0,0,3,4,5,0,7,8,9,10,11,12\',\'[^,]+\',1,level)
from dual connect by level<= 12;
查找对象锁sessionId
-- 判断是否存在锁
select * from V$DB_OBJECT_CACHE where name=\'BUDGET_CONTROL\' and locks!=\'0\';
-- 得到SID
select /*+ rule*/ SID from V$ACCESS WHERE object=\'BUDGET_CONTROL\';
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID=\'723\';
select a.SID,a.SERIAL#,b.SPID,a.STATUS from v$session a,v$process b where a.SID=723 and a.PADDR=b.ADDR;
alter system kill session \'723\';
使用listagg 替换wm_concat
select min(m.f_status),
listagg(m.f_planeno, \'或\') WITHIN group(order by m.f_planetype)
into mStatus, mMoudleName
from tb_production_reportmain m
where m.f_year = mMainData.f_Year
and (m.f_planeno = \'飞机参数表\' or m.f_planeno = \'运力投入计划表\');
5.BASH
- %~dp0,%cd% 都表示当前bat运行目录
- 0 表示标准输入 1 表示标准输出 2 表示标准错误输出,若bat中出现 2>&1,表示将运行命令中的错误信息,显示到控制台中。符号 < 表示输入,如,cat<1.txt 表示读取1.txt中的内容。 符号 > 表示输出,如: ls>1.txt 表示把ls中数据的内容保存到1.txt中,符号 >> 表示追加,如 ls>>1.txt 表示向文件1.txt中追加本次ls输出内容。
- %0 表示bat文件路径,%~nx0,表示去bat文件名和文件后缀
4.SqlServer
- 树形结构查询
with TreeDisplay([ObjectID] ,[JobCode],[SuperiorPostID],[CategoryID],Name,level) as (select ObjectID,[JobCode],[SuperiorPostID],[CategoryID],Name,0 as level from [dbo].[OT_OrgPost] where ObjectID= \'dcd2dee1-c861-474b-9b2c-cc2882f4a858\'--开始查询条件 union all --递归条件 select a.ObjectID ,a.[JobCode],a.[SuperiorPostID],a.[CategoryID],a.Name,b.level+1 from [dbo].[OT_OrgPost] a inner join TreeDisplay b on (a.ObjectID=b.[SuperiorPostID])) select * from cte_child;
5.JSON 特殊字符
\\n \\b \\r \\t / \\,遇到以上字符需要做转义替换处理。
6.XML特殊字符
< > & \' ",遇到以上字符,需要依次转换为 < > & ' "
7.CSS兼容性
IE浏览器都可以识别符号 \\9 ,IE6和IE7可识别 * ,IE6还可以是识别 _ ,CSS从上往下,由此可以为不同的浏览器设置不同的样式;
.className{
background:blue; /*非IE浏览器背景变蓝色*/
background:red \\9; /*IE8 背景变红色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
8.SVN 合并两个仓库
1. 使用vsrsionServer 导出项目dump
2. 建立新仓库,并规划目录
3. 使用命令svnadmin导入到子目录 svnadmin load --parent-dir 新仓库子目录 新仓库 < 备份dump
VsrsionServer 3.9 以后突破15人限制,直接找到 Repositories\\htpasswd 文件,用记事本打开,添加一行数据,再修改密码即可
9.完整复制eclipse主题
找到被复制项目空间,将目录中 .metadata\\.plugins\\org.eclipse.core.runtime\\.settings 所有文件复制到目标空间相同位置
10.excel生成字母序列
使用公式 CHAR(ROW(A1)+64) ,然后使用鼠标拖动填充
11.Java乱码处理方案
以上是关于开发易错点收集的主要内容,如果未能解决你的问题,请参考以下文章