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

com.j256.ormlite.stmt.RawRowMapperImpl Maven / Gradle / Ivy

Go to download

Lightweight Object Relational Model (ORM) for persisting objects to SQL databases.

There is a newer version: 6.1
Show newest version
package com.j256.ormlite.stmt;

import java.sql.SQLException;

import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.RawRowMapper;
import com.j256.ormlite.field.FieldType;
import com.j256.ormlite.table.TableInfo;

/**
 * Default row mapper when you are using the {@link Dao#queryRaw(String, RawRowMapper, String...)}.
 * 
 * @author graywatson
 */
public class RawRowMapperImpl implements RawRowMapper {

	private final Dao dao;
	private final TableInfo tableInfo;

	public RawRowMapperImpl(Dao dao) {
		this.dao = dao;
		this.tableInfo = dao.getTableInfo();
	}

	@Override
	public T mapRow(String[] columnNames, String[] resultColumns) throws SQLException {
		// create our object
		T rowObj = dao.createObjectInstance();
		for (int i = 0; i < columnNames.length; i++) {
			// sanity check, prolly will never happen but let's be careful out there
			if (i >= resultColumns.length) {
				continue;
			}
			// run through and convert each field
			FieldType fieldType = tableInfo.getFieldTypeByColumnName(columnNames[i]);
			Object fieldObj = fieldType.convertStringToJavaField(resultColumns[i], i);
			// assign it to the row object
			fieldType.assignField(dao.getConnectionSource(), rowObj, fieldObj, false, null);
		}
		return rowObj;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy