package jef.database.dialect.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import jef.database.dialect.DatabaseDialect; import jef.database.jdbc.result.IResultSet; import jef.tools.StringUtils; /** * BIGINT <-> String.class * @author jiyi * */ public class NumBigStringMapping extends AbstractVersionNumberMapping { public Object jdbcSet(PreparedStatement st, Object value, int index, DatabaseDialect session) throws SQLException { if (StringUtils.isEmpty(value)) { st.setNull(index, java.sql.Types.BIGINT); } else { st.setLong(index, Long.parseLong((String)value)); } return value; } public int getSqlType() { return java.sql.Types.BIGINT; } @Override protected String getSqlExpression(Object value, DatabaseDialect profile) { return value.toString(); } public Object jdbcGet(IResultSet rs, int n) throws SQLException { Object obj = rs.getObject(n); if (obj == null) return null; return obj.toString(); } @Override protected Class<?> getDefaultJavaType() { return String.class; } @Override Object increament(Object value) { if (value == null) return 1; int i = ((Number) value).intValue(); return String.valueOf(i + 1); } @Override public void jdbcUpdate(ResultSet rs, String columnIndex, Object value, DatabaseDialect dialect) throws SQLException { String s=(String)value; if(s.length()==0){ rs.updateNull(columnIndex); }else{ rs.updateLong(columnIndex, Long.parseLong(s)); } } @Override protected Object transfer(long n) { return String.valueOf(n); } }