/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.db;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MapStorgeColumnAdapter implements ColumnAdapter {
private String key;
private String className;
private ResultSetReader rsReader;
// private PstmtSetter pstmtSetter;
public MapStorgeColumnAdapter(String mapKey) {
this.key = mapKey;
rsReader=new ResultSetReader.ObjectReader();
// pstmtSetter=new PstmtSetter.ObjectPstmtSetter();
}
public MapStorgeColumnAdapter(String mapKey, String className) {
this.key = mapKey;
this.className=className;
rsReader=ResultSetReaderUtil.getReader( className );
// pstmtSetter=PstmtSetterUtil.getSetter( className );O
}
public void readResultSet(ResultSet rs, String columnName, Object o)
throws SQLException {
Object readValue = rsReader.reader( rs, columnName );
// if (StringUtil.isEmpty(className)) {
// readValue = rs.getObject(columnName);
// else if (className.equals("float")
// || className.equals("java.lang.Float"))
// readValue = new Float(rs.getFloat(columnName));
// else if (className.equals("double")
// || className.equals("java.lang.Double"))
// readValue = new Double(rs.getDouble(columnName));
// else if (className.equals("int")
// || className.equals("java.lang.Integer"))
// readValue = new Integer(rs.getInt(columnName));
// else if (className.equals("long")
// || className.equals("java.lang.Long"))
// readValue = new Long(rs.getLong(columnName));
// else if (className.equals("boolean")
// ||className.equals( "java.lang.Boolean" ))
// readValue = new Boolean(rs.getBoolean(columnName));
// else if (className.equals("java.util.Date"))
// readValue = rs.getDate(columnName);
// else
// readValue = rs.getObject(columnName);
//
MapStorgeObject mso = (MapStorgeObject) o;
mso.put(key, readValue);
}
public void readResultSet(ResultSet rs, int columnIndex, Object o)
throws SQLException {
Object readValue = rsReader.reader( rs, columnIndex );
//
// if (StringUtil.isEmpty(className))
// readValue = rs.getObject(columnIndex);
// else if (className.equals("float")
// || className.equals("java.lang.Float"))
// readValue = new Float(rs.getFloat(columnIndex));
// else if (className.equals("double")
// || className.equals("java.lang.Double"))
// readValue = new Double(rs.getDouble(columnIndex));
// else if (className.equals("int")
// || className.equals("java.lang.Integer"))
// readValue = new Integer(rs.getInt(columnIndex));
// else if (className.equals("long")
// || className.equals("java.lang.Long"))
// readValue = new Long(rs.getLong(columnIndex));
// else if (className.equals("boolean")
// ||className.equals( "java.lang.Boolean" ))
// readValue = new Boolean(rs.getBoolean(columnIndex));
// else if (className.equals("java.util.Date"))
// readValue = rs.getDate(columnIndex);
// else
// readValue = rs.getObject(columnIndex);
MapStorgeObject mso = (MapStorgeObject) o;
mso.put(key, readValue);
}
public void setPreparedStatement(PreparedStatement pstmt, int paramIndex,
Object o) throws SQLException {
MapStorgeObject mso = (MapStorgeObject) o;
Object setValue = mso.get(key);
//pstmtSetter.set( pstmt, paramIndex, setValue );
if(setValue instanceof java.util.Date){
java.util.Date date=(java.util.Date)setValue;
setValue= new java.sql.Date(date.getTime());
}
pstmt.setObject(paramIndex, setValue);
}
public Object extractFieldValue(Object o) {
MapStorgeObject mso = (MapStorgeObject) o;
return mso.get(key);
}
public String getKey() {
return key;
}
public void setKey( String key ) {
this.key=key;
}
public String getClassName() {
return className;
}
public void setClassName( String className ) {
this.className=className;
}
}