@JFinal 你好,想跟你请教个问题:
Model.java中的这两个方法,为什么不能在子类中调用,或者包内调用也行啊。
/**
* Find model.
*/
@SuppressWarnings("unchecked")
private List find(Connection conn, String sql, Object... paras) throws Exception {
Class extends Model> modelClass = getClass();
if (DbKit.devMode)
checkTableName(modelClass, sql);
PreparedStatement pst = conn.prepareStatement(sql);
DbKit.dialect.fillStatement(pst, paras);
// for (int i=0; i
// pst.setObject(i + 1, paras[i]);
// }
ResultSet rs = pst.executeQuery();
List result = ModelBuilder.build(rs, modelClass);
DbKit.closeQuietly(rs, pst);
return result;
}
/**
* Check the table name. The table name must in sql.
*/
@SuppressWarnings("unchecked")
private void checkTableName(Class extends Model> modelClass, String sql) {
TableInfo tableInfo = TableInfoMapping.me().getTableInfo(modelClass);
if (! sql.toLowerCase().contains(tableInfo.getTableName().toLowerCase()))
throw new ActiveRecordException("The table name: " + tableInfo.getTableName() + " not in your sql.");
}