1. List --> NullPointerException
For Example:
List<Wgab07Ab01ResDTO> wgab07Ab01ResDTOS = steadyDoUnemployDAO.rollbackWgab07HaveAab001(paramsSteadyDTO);
if(CollectionUtils.isEmpty(wgab07Ab01ResDTOS) && wgab07Ab01ResDTOS.size()==0){
throw new BusinessException("没有符合条件的应付核定记录!");
}
2. Get sequence
① Long key = commonBLO.getSeq("seq_a_operation");
② islInfoDao.getSequence("SEQ_A_OPERATION")
3. Mybatis #{}${}
#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111",
如果传入的值是id,则解析成的sql为order by "id".
$将传入的数据直接显示生成在sql中。
如:order by $user_id 如果传入的值是111,那么解析成sql时的值为order by user_id,
如果传入的值是id,则解析成的sql为order by id.
#可以防止SQL注入,$不可以
如何防止SQL注入?
注意:SQL语句不要写成select * from t_stu where s_name like '%%',这样极易受到注入攻击。
${}格式参数会直接参与sql编译,从而导致注入攻击,但是涉及动态的表名列名只能使用${}
如果不能避免使用${},需要做好过滤工作避免sql注入
if (!StringUtil.isEmpty(this.companyName)) {
table.setCompanyName("%" + this.companyName + "%");
}
Mapper
<sql id="condition_where">
<isNotEmpty property="companyName" prepend=" and ">
t1.company_name like #companyName#
</isNotEmpty>
</sql>
4.项目参数
String aae011 = super.getOperatorName();
String aab034 = super.getUnitCode();