ibatis的joda相关的TypeHandler

阅读更多
ibatis默认的没有提供joda DateTime的typeHandler,自己写一个。

import java.sql.SQLException;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;

/**
 * jdbcType: "DATETIME" <-> javaType: "org.joda.time.DateTime"
 * 
 * @author 应卓
 * 
 */
public class DateTimeTypeHandlerCallback implements TypeHandlerCallback {

	private static DateTimeFormatter FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");

	public Object getResult(ResultGetter getter) throws SQLException {
		DateTime date = new DateTime(getter.getTimestamp());
		return date;
	}

	public void setParameter(ParameterSetter setter, Object obj) throws SQLException {
		if (obj instanceof DateTime) {
			DateTime date = (DateTime) obj;
			setter.setString(date.toString(FORMAT));
//			setter.setTimestamp(new Timestamp(date.getMillis()));
		} else {
			throw new IllegalArgumentException("Illegal Date object");
		}
	}

	public Object valueOf(String string) {
		DateTime date = FORMAT.parseDateTime(string);
		return date;
	}
}





	
	
	

你可能感兴趣的:(ibatis,typehandler,joda,DateTime)