开发易错点收集

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 6
    11.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

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特殊字符

  < > & \' ",遇到以上字符,需要依次转换为 &lt; &gt; &amp; &apos; &quot;

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乱码处理方案

以上是关于开发易错点收集的主要内容,如果未能解决你的问题,请参考以下文章

python3+django2 开发易语言网络验证(中)

Python3 + django2 开发易语言网络验证(上)

python3+django2 开发易语言网络验证(上)

易商城系统模式开发易商城系统模式详解

移动应用拉起微信小程序

Microsoft SQL Server 代码片段收集