com.yuweix.kuafu.dao.mybatis.provider.SelectSqlProvider Maven / Gradle / Ivy
package com.yuweix.kuafu.dao.mybatis.provider;
import com.yuweix.kuafu.dao.PersistUtil;
import com.yuweix.kuafu.dao.mybatis.order.OrderBy;
import com.yuweix.kuafu.dao.mybatis.where.Criteria;
import org.apache.ibatis.jdbc.SQL;
import javax.persistence.Id;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
/**
* @author yuwei
*/
public class SelectSqlProvider extends AbstractProvider {
@SuppressWarnings("unchecked")
public String selectOneById(Map param) throws IllegalAccessException {
// PK id = (PK) param.get("id");
Class entityClass = (Class) param.get("clz");
String tbName = PersistUtil.getTableName(entityClass);
List fcList = PersistUtil.getPersistFieldList(entityClass);
return new SQL() {{
boolean whereSet = false;
for (PersistUtil.FieldCol fc: fcList) {
Field field = fc.getField();
SELECT(fc.getColumnName() + " as " + field.getName());
Id idAnn = field.getAnnotation(Id.class);
if (idAnn != null) {
WHERE(fc.getColumnName() + " = #{id}");
whereSet = true;
}
}
if (!whereSet) {
throw new IllegalAccessException("'where' is required.");
}
FROM(tbName);
}}.toString();
}
@SuppressWarnings("unchecked")
public String findCount(Map param) throws IllegalAccessException {
Criteria criteria = (Criteria) param.get("criteria");
Class entityClass = (Class) param.get("clazz");
String tbName = PersistUtil.getTableName(entityClass);
StringBuilder builder = new StringBuilder("");
builder.append("");
return builder.toString();
}
@SuppressWarnings("unchecked")
public String findList(Map param) throws IllegalAccessException {
Criteria criteria = (Criteria) param.get("criteria");
OrderBy orderBy = (OrderBy) param.get("orderBy");
Class entityClass = (Class) param.get("clazz");
Integer pageNo0 = null;
if (param.containsKey("pageNo")) {
pageNo0 = (Integer) param.get("pageNo");
}
Integer pageSize0 = null;
if (param.containsKey("pageSize")) {
pageSize0 = (Integer) param.get("pageSize");
}
String tbName = PersistUtil.getTableName(entityClass);
StringBuilder builder = new StringBuilder("");
builder.append("");
return builder.toString();
}
}