我所说的并非是三种查询方式的方法实现,这里我不用讲,我主要是想围绕着Hibernate SQL注入
一、Criteria
对于SQL注入的分析,其实也是围绕着把Criteria语句转化为SQL,生成可执行SQL语句,把完整的会发生注入的数据流API罗列出来
Restrictions.sqlRestriction SQL限定的查询
public static Criterion sqlRestriction(String sql) {
return new SQLCriterion(sql, ArrayHelper.EMPTY_OBJECT_ARRAY, ArrayHelper.EMPTY_TYPE_ARRAY);
}
protected SQLCriterion(String sql, Object[] values, Type[] types) {
this.sql = sql;
typedValues = new TypedValue[values.length];
for ( int i=0; i<typedValues.length; i++ ) {
typedValues[i] = new TypedValue( types[i], values[i], EntityMode.POJO );
}
}
public Criteria add(Criteria criteriaInst, Criterion expression) {
criterionEntries.add(