package jef.database.dialect.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import jef.database.Field; import jef.database.dialect.ColumnType; import jef.database.dialect.DatabaseDialect; import jef.database.jdbc.result.IResultSet; import jef.database.meta.ITableMetadata; public final class AutoLongMapping extends AutoIncrementMapping { @Override public void init(Field field, String columnName, ColumnType type, ITableMetadata meta) { super.init(field, columnName, type, meta); accessor = super.fieldAccessor; } public Object jdbcSet(PreparedStatement st, Object value, int index, DatabaseDialect session) throws SQLException { if (value == null) { st.setNull(index, getSqlType()); } else { st.setLong(index, ((Number) value).longValue()); } return value; } @Override public void jdbcUpdate(ResultSet rs,String column, Object value, DatabaseDialect dialect) throws SQLException { rs.updateLong(column, ((Number) value).longValue()); } public Object jdbcGet(IResultSet rs, int n) throws SQLException { Object obj = rs.getObject(n); if (obj == null) return null; if (obj instanceof Long) return obj; return ((Number) obj).longValue(); } @Override protected String getSqlExpression(Object value, DatabaseDialect profile) { return value.toString(); } @Override protected Class<?> getDefaultJavaType() { return Long.class; } }