All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yuweix.kuafu.dao.mybatis.provider.SelectSqlProvider Maven / Gradle / Ivy

The newest version!
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 jakarta.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();
	}
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy