org.nico.db.sql.impl.MysqlProcess Maven / Gradle / Ivy
package org.nico.db.sql.impl;
import java.util.List;
import java.util.Map;
import org.nico.db.exception.NoPrimaryKeyException;
import org.nico.db.page.DBPage;
import org.nico.db.sql.SqlProcess;
import org.nico.db.sql.entity.BitByIdEntity;
import org.nico.db.sql.entity.BitDeleteEntity;
import org.nico.db.sql.entity.BitSaveEntity;
import org.nico.db.sql.entity.BitSelectEntity;
import org.nico.db.sql.entity.BitUpdateEntity;
import org.nico.db.sql.entity.SqlEntity;
import org.nico.db.sql.factory.BitSqlFactory;
import org.nico.util.placeholder.PlaceHolderHelper;
public class MysqlProcess implements SqlProcess{
private PlaceHolderHelper holderHelper = new PlaceHolderHelper("#{", "}");
private BitSqlFactory sqlFactory = new BitSqlFactory();
private final String TEMPLATE_SAVE = "INSERT INTO #{tableName}(#{columns}) VALUES(#{params})";
private final String TEMPLATE_UPDATE = "UPDATE #{tableName} SET #{sets} WHERE #{primaries}";
private final String TEMPLATE_DELETE = "DELETE FROM #{tableName} WHERE #{primaries}";
private final String TEMPLATE_SELECT = "SELECT #{columns} FROM #{tableName} WHERE #{conditions} #{sorts} #{fromto}";
private final String TEMPLATE_SELECT_BYID = "SELECT #{columns} FROM #{tableName} WHERE #{primaries} LIMIT 1";
private final String TEMPLATE_COUNT = "SELECT COUNT(0) as count FROM #{tableName} WHERE #{conditions}";
@Override
public SqlEntity bySave(Object object) {
Class> clazz = object.getClass();
BitSaveEntity saveEntity = sqlFactory.getSave(clazz, object);
String sql = holderHelper.replacePlaceholders(TEMPLATE_SAVE, saveEntity.convertMap());
return new SqlEntity(sql, saveEntity.getObjs());
}
@Override
public SqlEntity byUpdate(Object object, boolean part) throws NoPrimaryKeyException {
Class> clazz = object.getClass();
BitUpdateEntity updateEntity = sqlFactory.getUpdate(clazz, object, part);
String sql = holderHelper.replacePlaceholders(TEMPLATE_UPDATE, updateEntity.convertMap());
return new SqlEntity(sql, updateEntity.getObjs());
}
@Override
public SqlEntity byUpdate(String tableName, String sets, String conditions, List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy