首页 > 其他分享 >Mybatis Plus 自定义 TypeHandler

Mybatis Plus 自定义 TypeHandler

时间:2023-12-08 14:01:57浏览次数:21  
标签:自定义 TypeHandler int rs Date Plus Mybatis import public

在MyBatis Plus中,可以自定义TypeHandler来处理特殊的类型转换。下面是如何自定义一个 TypeHandler 的步骤:

我们需要创建一个实现 org.apache.ibatis.type.TypeHandler接口的类。这个类需要实现以下几个方法:

  • setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType): 设置参数。
  • getResult(ResultSet rs, String columnName): 从结果集中获取数据。
  • getResult(CallableStatement cs, int columnIndex): 从存储过程中获取数据。

具体例子

1.将 java.util.Date 转换为java.util.String 字符串的 TypeHandler

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import java.sql.*;
import java.util.*;

public class DateToStringTypeHandler extends BaseTypeHandler<Date> {
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException {
        ps.setString(i, parameter.toString());
    }

    @Override
    public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
        return new Date(rs.getString(columnName));
    }

    @Override
    public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        return new Date(rs.getString(columnIndex));
    }

    @Override
    public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        return new Date(cs.getString(columnIndex));
    }
}

2.在 MyBatis Plus 的配置文件中注册这个 TypeHandler

config.getTypeHandlerRegistry().register(DateToStringTypeHandler.class);

这样,当SQL 查询返回日期类型的数据时,MyBatis Plus 就会使用自定义的DateToStringTypeHandler 来将日期转换为字符串。

标签:自定义,TypeHandler,int,rs,Date,Plus,Mybatis,import,public
From: https://blog.51cto.com/u_15527112/8737168

相关文章

  • 最强无缓存PCIe 4.0 SSD之一!长江存储致态TiPlus7100 4TB评测:满盘写入缓外2.3GB/s
    一、前言:长江存储首款自有品牌致态4TBSSD其实早在年初,就有不少搭载长江存储闪存颗粒的国产4TBSSD,不过长江存储的自有品牌致态,直到现在才推出这款致态TiPlus71004TB。当然有句话叫好货不怕晚,致态TiPlus71004TB是一款非常优秀的PCIe4.0SSD。致态TiPlus71004TB采用了长江......
  • 自定义idea工具栏图标
    把我们常用的一些图标放在工具栏,随用随点可以提升工作效率,以下是自定义idea工具栏图标的步骤进入工具栏菜单设置页面添加图标:如果我们想添加一个push按钮,就搜索push,点击确定按钮添加push调节按钮到合适位置,点击OK完成添加按钮已经添加完毕......
  • element-plus中的文件上传
    官网:https://element-plus.org/zh-CN/component/upload.html简单使用:场景:与表单项一起提交,但是需要回显功能,可以用过本地url预览方式实现<!--此处需要关闭element-plus的自动上传,不需要配置action等参数只需要做前端的本地预览图片即可,无需在提交前上传图片......
  • element plus el-table表格合并
    el-table表格合并实现都是使用表格的span-method属性绑定操作函数<el-table:data="table.data":span-method="objectSpanMethod"></el-table>操作函数格式constobjectSpanMethod=({row,column,rowIndex,columnIndex})=>{}相同值行合并对于相同的值进行行......
  • mybatis解析settings标签
    settings标签也是一个很重要的标签,虽然我们在使用的时候,没怎么配置settings标签里面的内容。好像一开始为了看sql语句,我们在settings标签里面配置了日志。<settings><settingname="logImpl"value="SLF4J"/></settings>其他的好像就没干什么了。其实settings标签......
  • 在HTML或者JSP中使用Element Plus
    我们都知道如何在node项目中,使用ElementPlus等UI框架,但在单页面中我们该如何引入ElementPlus呢?以下我们以HTML或JSP引入ElementPlus为例,需要按照以下步骤进行引用:步骤一下载ElementPlus首先,您需要下载ElementPlus的文件。您可以通过以下方式下载ElementPlus:访问ElementPlus......
  • MyBatis(上)
    1.MyBatis简介1.1MyBatis简述MyBatis是一个Java持久层框架,用于简化数据库交互的开发。它的核心思想是将SQL语句与Java代码分离,通过配置文件或注解来映射Java对象与数据库表之间的关系。MyBatis提供了简洁的API,使得开发人员可以更方便地进行数据库操作。MyBatis最初是Apache的......
  • 关键字 开发-10 封装引用自定义函数变量
    前言前面在yaml文件中引用内置函数以及自定义函数和变量时,都是在每个关键字后面进行单独得渲染,为了方便引用,于是我们单独对这块的内容进行封装。1.新增自定义函数和变量在utils下新建自定义函数和变量的文件,my_builtins.py,新增了在接口中需要用到的一些变量和函数。这样,在传......
  • antd Pro组件ProFormList实现自定义action
    antdPro组件ProFormList实现自定义actionProFormList是antdesignpro的结构化数据组件,通常用来实现动态表单。现在有个需求,除了组件自带的删除和复制,还需要增加两个按钮来实现每个item位置的上下移动,如图所示:查看官方文档,组件有提供自定义action的API--actionRender,介绍如下......
  • MyBatis的10种高级用法
    目录用来循环容器的标签forEach,查看例子concat模糊查询choose(when,otherwise)标签selectKey标签if标签if+where的条件判断if+set实现修改语句if+trim代替where/set标签foreach用来循环容器的标签forEachforeach元素的属性主要有item,index,collection,open,sep......