mysql-timestimp-------model-DateTime(jodatime)java
1 public class DataTimeTypeHandler extends BaseTypeHandler<DateTime> { 2 @Override 3 public void setNonNullParameter(PreparedStatement ps, int i, DateTime parameter, JdbcType jdbcType) throws SQLException { 4 ps.setTimestamp(i, new Timestamp(parameter.getMillis())); 5 } 6 7 @Override 8 public DateTime getNullableResult(ResultSet rs, String columnName) throws SQLException { 9 Timestamp timestamp = rs.getTimestamp(columnName); 10 if (timestamp == null) { 11 return DateTime.now(); 12 } 13 return new DateTime(timestamp); 14 } 15 16 @Override 17 public DateTime getNullableResult(ResultSet rs, int columnIndex) throws SQLException { 18 Timestamp timestamp = rs.getTimestamp(columnIndex); 19 if (timestamp == null) { 20 return DateTime.now(); 21 } 22 return new DateTime(timestamp); 23 } 24 25 @Override 26 public DateTime getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { 27 Timestamp timestamp = cs.getTimestamp(columnIndex); 28 if (timestamp == null) { 29 return DateTime.now(); 30 } 31 return new DateTime(timestamp); 32 } 33 }
<typeHandlers> handler="com.qunar.fresh.typehandler.DataTimeTypeHandler" javaType="org.joda.time.DateTime"/> </typeHandlers>
這樣在插入或是查找的時候不會出現null的狀況。mysql
本身寫typeHandler,其餘類型轉mysql字段類型也同樣,在這裏不一一細說。sql