秋日的晚霞 2021-07-03 11:56 采纳率: 94.4%
浏览 110
已采纳

TypeHandler转换失败 都配置了数据没有转换

1.继承BaseTypeHandler 类 改写四个方法

public class DateTypeHandler extends BaseTypeHandler<Date> {

    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {
        long time = date.getTime();
        preparedStatement.setLong(i,time);
    }

    @Override
    public Date getNullableResult(ResultSet resultSet, String s) throws SQLException {
        long aLong = resultSet.getLong(s);
        Date date = new Date(aLong);

        return date;
    }

    @Override
    public Date getNullableResult(ResultSet resultSet, int i) throws SQLException {
        long aLong = resultSet.getLong(i);
        Date date = new Date(aLong);

        return date;
    }

    @Override
    public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
        long aLong = callableStatement.getLong(i);
        Date date = new Date(aLong);
        return date;
    }
}

2.Mybatis核心配置文件注册

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!--    引入配置文件-->
    <properties resource="jdbc.properties"></properties>
    
<!--    起别名-->
    <typeAliases>
        <typeAlias type="com.vx202158.User" alias="user"/>
    </typeAliases>

<!--    注册类型处理器-->
    <typeHandlers>
        <typeHandler handler="com.vx202158.TypeHandler.DateTypeHandler"></typeHandler>
    </typeHandlers>
<!--    数据源环境-->
    <environments default="developement">
        <environment id="developement">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

<!--    加载映射文件-->
    <mappers>
        <mapper resource="com.vx202158.mapper/UserMapper.xml"></mapper>
    </mappers>

</configuration>

3.测试类

 @Test
    public void test4() throws IOException {
        User user = new User();
        user.setUser("张三");
        user.setPassword("123");
        user.setBirthday(new Date());


        //加载核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapperConfig.xml");
        //获取sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获取sqlsession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        mapper.saveUser(user);

        sqlSession.commit();

        sqlSession.close();

    }

4.日志

数据没有转换
img

5.报错

Data truncated for column 'birthday' at row 1

6.数据库列类型

img

  • 写回答

4条回答 默认 最新

  • 404警告 2021-07-03 12:47
    关注

    把注册内容换还曾如下

    <typeHandler handler="org.sang.db.MyDateTypeHandler"/>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效