У меня есть вопрос.Спасибо за ваше понимание того, что английский неопытен.
У меня проблема с моим веб-проектом, использующим mybatis в среде Spring Web MVC.
Проблема заключается в следующем.В моделировании БД значение флага задается как VARCHAR2.В VO.java примитивный тип задается как логическое значение.Однако во время операции выбора произошла ошибка.
Итак, когда я создал свой SqlSessionFactoryBean, я мог улучшить его, передав свойство typeHandlers свойству.
Поэтому, когда я пытаюсь его кодировать
YesNoBooleanTypeHandler.java
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.annotation.HandlesTypes;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
@MappedJdbcTypes(value = JdbcType.VARCHAR)
@MappedTypes(Boolean.class)
public class YesNoBooleanTypeHandler extends BaseTypeHandler<Boolean> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Boolean parameter, JdbcType jdbcType)
throws SQLException {
ps.setString(i, parameter ? "true" : "false");
}
@Override
public Boolean getNullableResult(ResultSet rs, String columnName) throws SQLException {
return rs.getString(columnName) != null && "true".equalsIgnoreCase(rs.getString(columnName));
}
@Override
public Boolean getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return rs.getString(columnIndex) != null && "true".equalsIgnoreCase(rs.getString(columnIndex));
}
@Override
public Boolean getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return cs.getString(columnIndex) != null && "true".equalsIgnoreCase(cs.getString(columnIndex));
}
}
Параметр SqlSessionFactoryBean.
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="mapperLocations" value="classpath:edu/kosta/kdc/mapper/*Mapper.xml" />
<beans:property name="typeAliasesPackage" value="edu.kosta.kdc.model.dto" />
<beans:property name="typeHandlers" value="edu.kosta.kdc.util.YesNoBooleanTypeHandler"/>
</beans:bean>
Конфигурация ResultMap
<result column="MEMBER_ISWITHDRAWAL" property="memberIsWithdrawal" typeHandler="edu.kosta.kdc.util.YesNoBooleanTypeHandler" />
Я настроил это следующим образом.
Тогда
Вложенное исключение - java.lang.IllegalStateException: Невозможно преобразовать значение типа 'java.lang.String.'to required type' org.apache.ibatis.type.TypeHandler 'для свойства' typeHandlers [0] ': не найдено подходящих редакторов или стратегии преобразования
Не могу запустить сервер с ошибкой .............. Мне нужен твой совет.