package org.nutz.dao.impl.jdbc.derby; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import org.nutz.dao.jdbc.ValueAdaptor; public class DerbyBooleanAdaptor implements ValueAdaptor { public Object get(ResultSet rs, String colName) throws SQLException { Object obj = rs.getObject(colName); if (obj == null) return false; return "T".equals(String.valueOf(obj)); } public void set(PreparedStatement stat, Object obj, int index) throws SQLException { if (obj == null) { stat.setNull(index, Types.VARCHAR); } else { boolean v; if (obj instanceof Boolean) v = (Boolean) obj; else if (obj instanceof Number) v = ((Number) obj).intValue() > 0; else if (obj instanceof Character) v = Character.toUpperCase((Character) obj) == 'T'; else v = Boolean.valueOf(obj.toString()); if (v) stat.setString(index, "T"); else stat.setString(index, "F"); } } }