All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.mycomm.dao.dao4comm.framework.impl.SimpleOrmObjectLoader Maven / Gradle / Ivy
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.mycomm.dao.dao4comm.framework.impl;
import com.mycomm.IProtocol.cache.TableCacheService;
import com.mycomm.dao.dao4comm.ResultHelp;
import com.mycomm.dao.dao4comm.framework.AnnotationStructureStrategy;
import com.mycomm.dao.dao4comm.framework.OrmObjectLoader;
import com.mycomm.dao.dao4comm.util.AnnotationParser;
import com.mycomm.dao.dao4comm.util.InstanceBuilder;
import com.mycomm.dao.dao4comm.util.Utils;
import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
/**
*
* @author jw362j
*/
public class SimpleOrmObjectLoader implements OrmObjectLoader {
private static final Logger log = LoggerFactory.getLogger(SimpleOrmObjectLoader.class);
public ResultHelp getScrollData(final AnnotationStructureStrategy annotationStructureStrategy, final JdbcTemplate jdbcTemplate, final Class clz, long firstindex, int maxresult, String[] fields, String wherejpql, Object[] queryParams, int[] queryParamsTypes, Map orderby, TableCacheService myTableCacheService) {
if (jdbcTemplate == null) {
throw new RuntimeException("JdbcTemplate is null ,game over!");
}
String sqlQuery = "SELECT "
+ ((fields != null && fields.length > 0) ? Utils.buildProjection(fields) : " * ")
+ " FROM " + annotationStructureStrategy.getTableName()
+ (wherejpql == null || "".equals(wherejpql.trim()) ? " " : " WHERE " + wherejpql)
+ Utils.buildOrderby(orderby)
+ ((firstindex > -1 && maxresult > -1) ? (" LIMIT " + firstindex + ", " + maxresult) : "");
log.info(sqlQuery);
if (queryParams == null || queryParams.length <= 0) {
if (queryParamsTypes != null) {
return null;
}
}
if (queryParamsTypes == null || queryParamsTypes.length <= 0) {
if (queryParams != null) {
return null;
}
}
List list;
final Field[] fs = clz.getDeclaredFields();
if (queryParams != null && queryParams.length > 0 && queryParamsTypes != null && queryParamsTypes.length > 0) {
list = (List) jdbcTemplate.query(sqlQuery,
queryParams,
queryParamsTypes,
new RowMapper() {
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
try {
Object instance = clz.newInstance();
// Field[] fs = clz.getDeclaredFields();
InstanceBuilder.buildInstance(rs, instance, fs, annotationStructureStrategy.getIdColumName());
return instance;
} catch (InstantiationException ex) {
log.error(ex.getMessage());
return null;
} catch (IllegalAccessException ex) {
log.error(ex.getMessage());
return null;
}
}
});
} else {
list = jdbcTemplate.query(sqlQuery, new RowMapper() {
public Object mapRow(ResultSet rs, int i) throws SQLException {
try {
Object instance = clz.newInstance();
InstanceBuilder.buildInstance(rs, instance, fs, annotationStructureStrategy.getIdColumName());
return instance;
} catch (InstantiationException ex) {
log.error(ex.getMessage());
return null;
} catch (IllegalAccessException ex) {
log.error(ex.getMessage());
return null;
}
}
});
}
if (myTableCacheService != null) {
//long id_flag = AnnotationParser.getIdValue(getModel());
if(list != null && list.size() > 0){
for(Object dataItem : list){
if(dataItem == null){
continue;
}
long id_flag = AnnotationParser.getIdValue(dataItem);
if(id_flag > 0){
myTableCacheService.put(clz, dataItem, id_flag);
}
}
}
}
ResultHelp qr = new ResultHelp();
qr.setResultlist(list);
return qr;
}
}