文档章节

Mybatis类型转换小例子

monee1988
 monee1988
发布于 2016/07/12 16:10
字数 357
阅读 20
收藏 0

:point_right:**例子描述:**我们希望将数据库查询的时间格式化为几秒前,几分钟前,几个小时前,几天前,几个月前,几年前等等格式

:pray:开始例子

1. 创建自定义的TypeHandler 这里我们用子类StringTypeHandler:tw-1f4af:

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

import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.StringTypeHandler;
public class CustomTimeStampHandler extends StringTypeHandler {
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType)
			throws SQLException {
		        ps.setString(i, parameter);
    }

    @Override
    public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
	    try {
		    String currentColumnValue = rs.getString(columnName);
			if (!StringUtils.isEmpty(currentColumnValue)) {
			    //此处做数据格式的转换
			    String result = formatResult(currentColumnValue);
			    return result;
	            }
            } catch (Exception e) {
			    e.printStackTrace();
		    }
        return null;
    }

    private String formatResult(String currentColumnValue) {
        // TODO 返回数据格式化处理逻辑
        return null;
    }
}

2. 注册TypeHandler(StringTypeHandler):tw-1f4e2:

在mybatis-config.xml中注册自定义的TypeHandler

<typeHandlers>
      <typeHandler handler="com.xxx.CustomTimeStampHandler" javaType="String"/>
</typeHandlers>

3. mybatis查询sql中的利用:tw-1f4aa:

<result property="yourproperty" column="yourcolumn" typeHandler="com.xxx.CustomTimeStampHandler"/>  

© 著作权归作者所有

共有 人打赏支持
monee1988

monee1988

粉丝 6
博文 6
码字总数 3357
作品 0
朝阳
程序员
Mybatis3.3.x技术内幕(十二):Mybatis之TypeHandler

Mybatis中的TypeHandler有两个功能,一个是完成javaType至jdbcType的转换,另外一个是完成jdbcType至javaType的转换。 public interface TypeHandler<T> { void setParameter(PreparedStatem......

祖大俊
2016/05/06
991
0
Spring PropertyEditor

在使用Spring和MyBatis集成的时候,配置了如上所示的bean,这个bean对应的类是SqlSessionFactoryBean,这个类实现了FactoryBean,这里不详细介绍这个类,我们只是看一看它的mapperLocations...

trayvon
2016/06/28
27
0
Mybatis-generator的使用

一、核心文件generator.xml 指定数据库jar包位置、数据库连接信息、生成包的位置、表名等关键信息。该文件放在任意位置。

woshixuye111
2014/06/07
0
0
Mybatis(二)返回值、表查询

之前对Mybatis有了初步的学习与使用,最近学习ssh发现ssh太重,我个人觉得,像hibernate事务,很多情况下没有使用,而缓存,大部分时候也用不上,需要用到的场景,完全可以自已开发,更轻,而...

什么都不懂的小石
2017/12/02
0
0
《深入理解mybatis原理》 以及 mybatis自定义枚举转换类

深入理解mybatis原理: 专栏:深入理解MyBatis原理 - 博客频道 - CSDN.NET -------------------------------------------------------------------------------- 摘要: mybatis自定义枚举转换......

weiliu007
2016/11/25
12
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部