package jef.database.dialect.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Time; import java.util.Date; import jef.database.dialect.DatabaseDialect; import jef.database.jdbc.result.IResultSet; public class SqlTimeDateMapping extends AColumnMapping{ public Object jdbcSet(PreparedStatement st, Object value, int index, DatabaseDialect session) throws SQLException { if(value==null){ st.setNull(index, java.sql.Types.TIME); return value; }else{ Time time=new java.sql.Time(((Date)value).getTime()); st.setTime(index, time); return time; } } public int getSqlType() { return java.sql.Types.TIME; } @Override protected String getSqlExpression(Object value, DatabaseDialect profile) { if(value instanceof java.util.Date){ return profile.getSqlTimeExpression((Date)value); } throw new IllegalArgumentException("The input param can not cast to Date."); } public Object jdbcGet(IResultSet rs, int n) throws SQLException { java.sql.Time obj=rs.getTime(n); if(obj==null)return null; return new Date(obj.getTime()); } @Override protected Class<?> getDefaultJavaType() { return Date.class; } @Override public void jdbcUpdate(ResultSet rs, String columnIndex, Object value, DatabaseDialect dialect) throws SQLException { Time time=new java.sql.Time(((Date)value).getTime()); rs.updateTime(columnIndex, time); } }