All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yqjr.framework.datatype.DateTypeHandler Maven / Gradle / Ivy

package com.yqjr.framework.datatype;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

/**
 * ClassName: DateTypeHandler 
* Description: Mybatis类型转换器,Date
* Create By: admin
* Create Date: 2017年2月27日 上午8:55:18
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/ public class DateTypeHandler extends BaseTypeHandler { /** * Description: 类型转换
* Create By: admin
* Create Data: 2017年2月27日 上午9:07:53 * * @param rsc * @return */ private Date transferType(Object rsc) { // 如果为null则返回null if (rsc == null) { return null; } // oracle timestamp if (rsc instanceof oracle.sql.TIMESTAMP) { try { Timestamp ts = ((oracle.sql.TIMESTAMP) rsc).timestampValue(); return new Date(ts); } catch (SQLException e) { throw new BizzException(e); } } // oracle date if (rsc instanceof oracle.sql.DATE) { return new Date(((oracle.sql.DATE) rsc).dateValue()); } // timestamp else if (rsc instanceof java.sql.Timestamp) { return new Date((java.sql.Timestamp) rsc); } // date else if (rsc instanceof java.sql.Date) { return new Date((java.sql.Date) rsc); } // 其他情况抛异常 else { throw new BizzException("非法的类型转换器配置DateTypeHandler"); } } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#setNonNullParameter(java.sql. * PreparedStatement, int, java.lang.Object, * org.apache.ibatis.type.JdbcType) */ @Override public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException { if (jdbcType == JdbcType.TIMESTAMP) { ps.setTimestamp(i, parameter.toTimeStamp()); } else if (jdbcType == JdbcType.DATE) { ps.setDate(i, parameter.toSqlDate()); } else { throw new BizzException("非法的类型转换器配置DateTypeHandler"); } } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * ResultSet, java.lang.String) */ @Override public Date getNullableResult(ResultSet rs, String columnName) throws SQLException { return transferType(rs.getObject(columnName)); } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * ResultSet, int) */ @Override public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return transferType(rs.getObject(columnIndex)); } /* * (non-Javadoc) * * @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql. * CallableStatement, int) */ @Override public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return transferType(cs.getObject(columnIndex)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy