文档章节

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
朝阳
程序员
私信 提问
oracle 11g下的行转列pivot填坑--xmlType转clob或String

临近年关,我们给全公司用的API平台也到了要装逼的时刻,然而装逼利器还没搞完,那就是报表呈现,于是leader说你来搞一下吧。 echarts肯定是要的,报表呈现还是很完美的。然后就是数据库层面...

checkboxMan
2018/12/10
0
0
Mybatis3.3.x技术内幕(十二):Mybatis之TypeHandler

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

祖大俊
2016/05/06
991
0
Mybatis 数据库物理分页插件 PageHelper

以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了。最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧。记录下其使用方法。 1. 引入依赖jar...

xiaomin0322
2018/11/14
0
0
Mybatis-generator的使用

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

woshixuye111
2014/06/07
0
0
Spring PropertyEditor

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

trayvon
2016/06/28
27
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
34分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
今天
4
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
今天
2
0
你真的需要了解一下CSS变量 var()的用法

当Web项目变得越来越大时,他的CSS会变得像天文数字那么大而且还变得混乱。为了帮助我们解决这个问题,新的CSS变量很快就会出现在主流浏览器中,它让开发人员能够重用并轻松编辑重复出现的C...

前端小攻略
今天
1
0
嵌入式应用选择合适的微控制器

为嵌入式应用选择微控制器有几个原因,即低成本,高集成度,增加可靠性,节省空间等。 准备所需硬件接口列表使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微...

linux-tao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部