文档章节

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
Mybatis 数据库物理分页插件 PageHelper

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

xiaomin0322
11/14
0
0
Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

相关文章 Mybatis 解析配置文件的源码解析 Mybatis 类型转换源码分析 Mybatis 数据源和数据库连接池源码解析(DataSource) Mybatis Mapper 接口源码解析(binding包) Mybatis 解析 SQL 源码...

tsmyk0715
11/18
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

没有更多内容

加载失败,请刷新页面

加载更多

Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
今天
4
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部