学习中遇到的错误和需要牢记的知识点

 

有时碰到网页控制台报错第一行<!DOCTYPE html>,通常是js文件的错误,比如过滤器给过滤了地址

Mysql SUM,AVG后结果是decimal,count后是long,而不是int
int[][] arr = new int[3][],声明的是三个null的一维数组对象;new int[2][2]声明的是有初始值0的二维数组对象
数组思想:数据多->分类--数组=>数组多---分类 二维数组
java学习的过程就是在学习如何不断维护面向对象之间的关系
面向对象三要素:封装/继承/多态;多态实现的三个条件:继承、重写、向上转型
String 不是关键字 java中的关键字都是小写的
Java中基本数据类型8种,引用数据类型3种:类/数组/接口;引用数据类型和引用传递没有关系

规范:所有的异常都要在servlet里面捕获,记录日志;

Java异常处理原则之一:延迟捕获:当异常发生时,不应立即捕获,而是应该考虑当前作用域是否有有能力处理这一异常的能力,如果没有,则应将该异常继续向上抛出,交由更上层的作用域来处理。

删除要有提示是否删除
二进制表单:enctype="multipart/form-data"
重写finalized方法,将在对象销毁时(被GC回收的时候)调用
泛型规范:T type;E Element;K key;V value
Spring xml头文件约束报错:1.general-network-cache remov all;2.项目右键validate
利用<base>标签
hibeinate使用工具生成entity的时候,数据库对外键加上unique可以生成一对一关系,否则是多对一
当使用hibernate进行多对多关系的维护时,如果使用级联,那么hibernate会首先删除所有对应关系,然后进行插入关系.同时要慎用级联删除,因为会删掉实体表;多对多会默认维护中间表的关系.
spring5已经删除了Log4jConfigListener包
拦截器配置中<mvc:exclude-mapping path="/user/regist2.luhao" />;此处要加全名(user),前面要加"/"
持久层方法的参数可以是包装类型,hashMap等,但是service层中的方法参数建议不要使用包装类型(不利于业务层的可扩展)
control+shift+t找类
要用到共同数据(包括锁)的不同方法应当归到同一个类上
访问局部变量要加final____????
小技巧:输出控制台指令到文件
run configuration 
common
output..
静态方法中不能new内部类的实例对象
内部静态类的特点和外部类差不多
要用到共同数据(包括锁)的不同方法应当归到同一个类上
查看别人的代码的小技巧:在浏览器[检查],找到资源,在java中ctrl+H查找外部资源,ctrl+F查找方法,ctrl+T查看实现类

自定义实体集合排序的两种方法:

1.实体实现Compareable接口,实现compareTo方法,然后通过Collection.sort(xxx);来排序

2.写一个比较器实现CompareTor接口,实现compare方法,然后通过xxx.sort();来排序

集合的交集:list1.retainAll(list2);

集合的并集:list1.addAll(list2);//最好用Set

集合的差集:list1.removeAll(list2);

super不能调用父类的私有方法,其他包的子类可以用于调用protected方法
protected其他包不可以访问,但是其他包的子类可以使用super来访问
默认的访问修饰符:其他包不可以访问,其他包的子类也不可以访问
Java中事件委托机制和观察者模式 https://blog.csdn.net/howroad/article/details/80202035
跳出多层循环的方法有,break,return,system.exit,抛异常等等
java中垃圾回收机制的算法,参考:http://www.importnew.com/26821.html
实现对象序列化的Demo
  1. request        HttpServletRequest  
  2. response       HttpServletResponse  
  3. config         ServletConfig  
  4. application    ServletContext  
  5. session        HttpSession  
  6. exception      Throwable  
  7. page           Object(this)  
  8. out            JspWriter  
  9. pageContext    PageContext  
Mysql中使用not in 当子查询结果是null的时候,结果始终为null,因为null和任何运算都是false
原来的:select t_power.* from t_power where power_id not in(select power_id from t_role_power where t_role_power.role_id='402881896364623b01636478e4730000') 
更改后:select t_power.* from t_power where power_id not in(select power_id from t_role_power where t_role_power.role_id='402881896364623b01636478e4730000' and power_id is not null) 
父类的静态代码块
子类的静态代码块
父类的非静态代码块
父类的无参构造器
子类的非静态代码块
子类的有参构造器
hibernate in 用法 where org_code in (:list) ;query.setParameterList("list", list)
spring boot读取properties文件乱码问题,貌似是eclipse默认设置的问题,解决办法:luhaoName.getBytes("iso8859-1"),"UTF-8")
thymeleaf模板引擎只支持html不支持jsp!
springBoot对thymeleaf的支持比jstl要好,建议用thymeleaf
oracle复制表结构  create table um_aims_nsclient as select * from nsclient where 1=2;
网络
Description Resource Path Location Type Archive for required library: Maven下载的时候网络波动引起的出错,找到该目录删掉重新install或ctrl + f5
html表格边框是cellspacing和cellpadding不是colspan和sellSpan
$obj.click();不如原生的js click好用。
标签点击事件调用多个函数这样写:οnclick='fun1();fun2()'
jdbc中prepredStatement是从1开始的
        例如:setString(1,string) rs.getString(1)

        oracle常用表:
        select * from all_tab_comments -- 查询所有用户的表,视图等
        select * from user_tab_comments -- 查询本用户的表,视图等
        select * from all_col_comments  --查询所有用户的表的列名和注释.
        select * from user_col_comments -- 查询本用户的表的列名和注释
        select * from all_tab_columns --查询所有用户的表的列名等信息(详细但是没有备注).
        select * from user_tab_columns --查询本用户的表的列名等信息(详细但是没有备注).

        select r1, r2, r3, r5
        from (select a.table_name r1, a.column_name r2, a.comments r3
                  from user_col_comments a),
               (select t.table_name r4, t.comments r5 from user_tab_comments t)
        where r4 = r1

union后再排序:ORDER BY 3 ASC ;3代表第三列
        使用statement修改数据库
        //1.获得连接
        conn = getConnection();
        //2.用Connection中的 createStatement()方法获取 Statement 对象
        statement = conn.createStatement();
        //3.调用 Statement 对象的 executeUpdate()方法,执行SQL语句并修改数据库
        statement.executeUpdate( sqlStatement );
        jQuery
        同胞元素 sblings
        字符串转数据 parseInt
DDL语句没有事务性(create drop...)

两表关联更新的几种方式

1.内联视图更新

UPDATE (
select t1.fmoney  fmoney1,t2.fmoney  fmoney2 from t1,t2 where t1.fname = t2.fname
)t
set fmoney1 =fmoney2;

 

2.

-- update 超过2个值
update customers a -- 使用别名
set (city_name,customer_type)=(select b.city_name,b.customer_type
from tmp_cust_city b
where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
ORCLAE中如何取模where  mod(x,y) = 1

HTML元素加粗(已过时的方法)

<b></b>或<strong></strong>

现在用font-weight

ibatis中where里面加循环

<isNotEmpty prepend="AND" property="GROUPIDS">
IGROUPID IN
<iterate open="(" close=")" conjunction="," property="GROUPIDS" >
$GROUPIDS[]$
</iterate >
</isNotEmpty>

如果传入的参数是list或者collection或者array,那么在iterate中不需要写property

oracle查询条件用空格隔开的匹配,多个查询条件的匹配

select col from table t where REGEXP_LIKE(t.col,'条件1|条件2')

删除主键约束

alter table jack drop constraint SYS_C0011105
sqlPlus报错 :SP2-0341: 
在变量替代时行溢出 (>3000 个字符位于行 1)
命令行模式,自动化测试时,执行脚本,insert语句过长,其中insert语句3700字,某个字段的值也超过了3100字,尚不清楚是哪一个错误。
父页面弹出子页面后,想要执行子页面的方法,由于公司使用什么懒加载,onload和load,ready等都不能使用
jquery获取其他页面的元素,$("sele",document)
IE8不支持数组的IndexOf,用jquery的,例如$.inArray(fixedId,idArr) >= 0
eclipse控制台编码,去runConfig设置Common里面

创建从10000开始的序列,要改动两个地方,例如

 

DECLARE
    CNT INTEGER;
BEGIN
    SELECT COUNT(0) INTO CNT FROM USER_SEQUENCES
    WHERE SEQUENCE_NAME = UPPER('SEQ_GDT_CUST_BUSS');
    IF CNT = 0 THEN
    EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_GDT_CUST_BUSS
        MINVALUE 1000
        MAXVALUE 9999999999999999999999999
        START WITH 1000
        INCREMENT BY 1
        CACHE 20';
    END IF;
END;
/
 

ORACLE中null和‘’是一样的

1. base64 的解密函数
select utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw('dGVzdA=='))) from dual

2. base64 的加密函数
select utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('test'))) from dual

            DECODE(T.HTML_SPAN,NULL,NULL,UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW(T.HTML_SPAN)))) AS "htmlSpan",
DECODE(#htmlSpan#,NULL,NULL,UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW(#htmlSpan#)))),
java中亦或^可以做逻辑运算也可以做位运算,没有^^,
使用Set去重和查重,set.add()判断返回的true或者false,hashSet其实就是一个hashMap
正则Match 使用 if(match.find()) 和使用while的区别
    static void test4(){
        String sheetName = "123456-中国银行-20190506";
        String reg = "^(\\d+)-([\u4e00-\u9fa5]+)-([12]\\d{3}[012]\\d[0123]\\d)$";
        
        Pattern p = Pattern.compile(reg);
        System.out.println(sheetName.matches(reg));
        Matcher m = p.matcher(sheetName);
        if(m.find()) {
            System.out.println(m.group(1));
            System.out.println(m.group(2));
            System.out.println(m.group(3));
        }
    }
    public static void test7() {
        String tableName = "AIMS_ACCOUNT_XXX_YYY";
        String reg = "[^\\_]+";
        Pattern pattern = Pattern.compile(reg);
        Matcher matcher = pattern.matcher(tableName);
        StringBuffer buffer = new StringBuffer();
        while(matcher.find()) {
            String str = matcher.group();
            buffer.append(str.charAt(0));
        }
        System.out.println(buffer);
    }

 

数据库只能使用rownum = 1 或者 rownum  < 2 不能 rownum = 2 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值