JdbcType

article/2025/10/8 2:00:16

JdbcType介绍

数据库列字段都是有类型的,不同的数据库有不同的类型。为了表示这些数据类型,Java源码是采用枚举来定义的:

public enum JDBCType implements SQLType {TINYINT(Types.TINYINT),SMALLINT(Types.SMALLINT),INTEGER(Types.INTEGER)
}

枚举变量也是有类型的,也是有值的,正如整数变量是整数类型,也有值大小一样,上述枚举变量值的定义是通过Types来描述刻画的。

public class Types {public final static int TINYINT         =  -6;public final static int SMALLINT        =   5;public final static int INTEGER         =   4;  
}

MyBatis包含的JdbcType类型,主要有下面这些,大致了解一下即可:

BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR

上述JdbcType类型和Java类型的对应关系,可以参照下面的列表,不过不同数据库的JdbcType多少有些出入,请注意即可。

JDBC Type           Java Type  
CHAR                String  
VARCHAR             String  
LONGVARCHAR         String  
NUMERIC             java.math.BigDecimal  
DECIMAL             java.math.BigDecimal  
BIT                 boolean  
BOOLEAN             boolean  
TINYINT             byte  
SMALLINT            short  
INTEGER             INTEGER  
BIGINT              long  
REAL                float  
FLOAT               double  
DOUBLE              double  
BINARY              byte[]  
VARBINARY           byte[]  
LONGVARBINARY       byte[]  
DATE                java.sql.Date  
TIME                java.sql.Time  
TIMESTAMP           java.sql.Timestamp  
CLOB                Clob  
BLOB                Blob  
ARRAY               Array  
DISTINCT            mapping of underlying type  
STRUCT              Struct  
REF                 Ref  
DATALINK            java.net.URL

JdbcType类型的作用

在Mybatis明文建议在映射字段数据时需要将JdbcType属性加上,这样相对来说是比较安全的。

<insert id="saveRole">insert into role values (#{roleId},#{name},#{remarks},#{orderNo},#{createBy,jdbcType=VARCHAR},#{createDept,jdbcType=VARCHAR},#{createTime,jdbcType=DATE},#{updateBy,jdbcType=VARCHAR},#{updateTime,jdbcType=DATE})
</insert>

这样,保证了前四种是不能为空的前提下,而后面几项为空时也不至于程序报错。如果createBy为空,插入的时候mybatis不知道具体转换成什么jdbcType类型,通常会使用一个默认设置,虽然默认配置一般情况下不会出错,但是遇到个别情况还是会有问题的。Mybatis经常出现的:无效的列类型: 1111 错误,就是因为没有设置JdbcType造成的。

 

 

MybatisjdbcType和javaType的对应关系

复制代码

复制代码

 1 JDBC Type           Java Type  2 CHAR                String  3 VARCHAR             String  4 LONGVARCHAR         String  5 NUMERIC             java.math.BigDecimal  6 DECIMAL             java.math.BigDecimal  7 BIT                 boolean  8 BOOLEAN             boolean  9 TINYINT             byte  
10 SMALLINT            short  
11 INTEGER             int  
12 BIGINT              long  
13 REAL                float  
14 FLOAT               double  
15 DOUBLE              double  
16 BINARY              byte[]  
17 VARBINARY           byte[]  
18 LONGVARBINARY               byte[]  
19 DATE                java.sql.Date  
20 TIME                java.sql.Time  
21 TIMESTAMP           java.sql.Timestamp  
22 CLOB                Clob  
23 BLOB                Blob  
24 ARRAY               Array  
25 DISTINCT            mapping of underlying type  
26 STRUCT              Struct  
27 REF                         Ref  
28 DATALINK            java.net.URL[color=red][/color]  

复制代码

复制代码

Mybatis JdbcType与Oracle、MySql数据类型对应列表

复制代码

复制代码

Mybatis    JdbcType    Oracle    MySql
JdbcType    ARRAY        
JdbcType    BIGINT               BIGINT
JdbcType    BINARY        
JdbcType    BIT        BIT
JdbcType    BLOB       BLOB      BLOB
JdbcType    BOOLEAN        
JdbcType    CHAR       CHAR      CHAR
JdbcType    CLOB       CLOB      CLOB
JdbcType    CURSOR        
JdbcType    DATE       DATE      DATE
JdbcType    DECIMAL    DECIMAL   DECIMAL
JdbcType    DOUBLE     NUMBER    DOUBLE
JdbcType    FLOAT      FLOAT     FLOAT
JdbcType    INTEGER    INTEGER   INTEGER
JdbcType    LONGVARBINARY        
JdbcType    LONGVARCHAR  LONG    VARCHAR    
JdbcType    NCHAR      NCHAR    
JdbcType    NCLOB      NCLOB    
JdbcType    NULL        
JdbcType    NUMERIC   NUMERIC/NUMBER  NUMERIC/
JdbcType    NVARCHAR        
JdbcType    OTHER        
JdbcType    REAL       REAL       REAL
JdbcType    SMALLINT   SMALLINT   SMALLINT
JdbcType    STRUCT        
JdbcType    TIME       TIME
JdbcType    TIMESTAMP  TIMESTAMP  TIMESTAMP/DATETIME
JdbcType    TINYINT    TINYINT
JdbcType    UNDEFINED        
JdbcType    VARBINARY        
JdbcType    VARCHAR    VARCHAR    VARCHAR

http://chatgpt.dhexx.cn/article/py55jJWM.shtml

相关文章

MyBatis 所有的 jdbcType类型

MyBatis处理MySQL字段类型date与datetime 1&#xff09; DATETIME 显示格式&#xff1a;yyyy-MM-dd HH:mm:ss 时间范围:[ 1000-01-01 00:00:00到9999-12-31 23:59:59]2&#xff09; DATE 显示格式&#xff1a;yyyy-MM-dd 时间范围&#xff1a;[1000-01-01到9999-12-31]3&#…

(转)mybatis常用jdbcType数据类型

阅读目录 1 MyBatis 通过包含的jdbcType类型2 Mybatis中javaType和jdbcType对应和CRUD例子3 Mybatis中javaType和jdbcType对应关系 4 oracle数据类型和对应的java类型 回到顶部 1 MyBatis 通过包含的jdbcType类型 BIT FLOAT CHAR TIMESTAMP O…

Harris Corner 角点检测

角点是同时在多个方向上变化的点&#xff0c;相对于边缘&#xff0c;更加具有独特性。角点检测普遍应用在很多场合&#xff0c;如指纹检测中的指纹特征提取&#xff0c;稀疏光流计算。 Harris corner角点的基本思想是通过一个小窗口来观察&#xff0c;因此很容易识别出角点来。…

Harris角点检测算法的实现(详细版)

前言 无 一、角点是神马&#xff1f; 角点被定义为图像边缘曲线上曲率极大值的点或图像亮度变化剧烈的点 &#xff0c;这些点既保留了图像的重要特征&#xff0c;又有效地减少了信息的数据量。 二、Harris角点检测算法原理 Harris算法以 Morave算法为基础&#xff0c;如果…

harris角点检测算法实现

算法流程&#xff1a; 1、将图像转换为灰度图像&#xff1b; 2、利用Sobel滤波器求出 海森矩阵 (Hessian matrix) : 3、将高斯滤波器分别作用于Ix、Iy、IxIy&#xff1b; 4、计算每个像素的 R det(H) - k(trace(H))。det(H)表示矩阵H的行列式&#xff0c;trace表示矩阵H的迹。通…

Python计算机视觉——Harris角点检测

Python计算机视觉——Harris角点检测 文章目录 Python计算机视觉——Harris角点检测写在前面1 Harris角点检测基本思想2 Harris角点检测公式推导3 实验分析 写在前面 在传统目标识别中&#xff0c;特征提取是最终目标识别效果好坏的一个重要决定因素&#xff0c;因此&#xff…

Harris角点检测原理-

本文是本人看bilibili教学结合官方文档的观后笔记&#xff0c;链接在下&#xff1a; &#xff08;全&#xff09;基于python的Opencv项目实战_哔哩哔哩_bilibili 如果有什么理解不到位的地方&#xff0c;欢迎指正。 理论&#xff1a; 先放角点定义&#xff08;百度百科&…

计算机视觉(二)HARRIS角点检测算法与SIFT

文章目录 前言一、HARRIS角点检测算法1.什么是角点&#xff08;corner points&#xff09;2.角点检测算法的基本思想3.什么是好的角点检测算法4.角点特征的数学刻画5.度量角点响应6.HARRIS角点检测器的响应函数7.HARRIS角点检测算法的优点8.HARRIS角点检测算法的缺点9.HARRIS角…

【特征检测】Harris角点检测中的数学推导

简介 本文主要是对Harris角点检测的数学公式进行推导&#xff0c;更加深入的掌握原理性的理论知识。 预备知识 椭圆的矩阵方程表示 在高中课本中&#xff0c;我们学习到标准椭圆及其方程&#xff08;如下图所示&#xff09;&#xff1a; 其实&#xff0c;矩阵在运算中使用非…

Matlab实现Harris角点检测

一、代码 close all; clc; % 读取图像信息&#xff08;原图为灰度图&#xff09; img imread(lena.bmp); [m,n] size(img); % 先在原图外围扩展一圈 tmp zeros(m2,n2); tmp(2:m1,2:n1) img; % 初始化各一阶偏导矩阵 Ix zeros(m2,n2); Iy zeros(m2,n2); E zeros(m2,n2);…

角点检测和匹配之Harris与FAST角点检测

这一章主要内容&#xff1a; 1. Harris角点检测 2. FAST特征检测 3. 尺度不变的SURF特征检测 4.SURF检测描述 一、引言 在计算机视觉中&#xff0c;特征点或称兴趣点&#xff0c;角点(即图像的极值点&#xff0c;线段的终点&#xff0c;曲线曲率最大的点或水平、竖直方向上属性…

Matlab实现Harris角点检测算法

角点 一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点&#xff0c;也可以是在某些属性上强度最大或者最小的孤立点、线段的终点&#xff0c;或者是曲线上局部曲率最大的点。在实践中&#xff0c;通常大部分称为角点检测的…

Harris 角点检测原理及实现

1. 图像中角点定义 沿各个方向&#xff0c;图像灰度均发生变化&#xff1b; 2.Harris原理 Harris中也是根据角点定义经角点定义&#xff0c;Harris中使用该像素点周围像素块和其周围的其它像素块的相关性刻画角点&#xff0c;相关性用平方差之和进行计算(SSD)&#xff0c;SS…

基于Python手动实现Harris角点检测

最近在上数字图像处理课程&#xff0c;需要使用Python手动编写Harris角点检测算法&#xff0c;但是网上几乎没有找到手动编写的&#xff0c;只能手敲。 同时作为自己的第一篇博客&#xff0c;在这里记录一下。 一、Harris角点检测 原理&#xff08;略&#xff09; 可以参考博…

【OpenCV入门教程之十六】OpenCV角点检测之Harris角点检测

本系列文章由浅墨_毛星云 出品&#xff0c;转载请注明出处。 文章链接&#xff1a; http://blog.csdn.net/poem_qianmo/article/details/29356187 作者&#xff1a;毛星云&#xff08;浅墨&#xff09; 微博&#xff1a;http://weibo.com/u/1723155442 知乎&#xff1a;ht…

Harris 角点检测(Harris Corner Detection)(OpenCV实现)

匹配问题 Harris角点检测是Chris Harris和Mike Stephens在1988年提出的。主要用于运动图像的追踪。当时的普遍想法是利用边缘进行追踪&#xff0c;但是当相机或物体运动时你不知道朝哪个方向&#xff0c;相机的几何变换也是未知的&#xff0c;所以边缘匹配很难达到预期的效果。…

图像处理(九)——Harris角点检测

实现Harris角点检测算法&#xff0c;并与OpenCV的cornerHarris函数的结果进行比较。 特征点在图像中一般有具体的坐标&#xff0c;并具有某些数学特征&#xff0c;如局部最大或最小灰度、以及某些梯度特征等。角点可以简单的认为是两条边的交点。如下图所示&#xff1a; 在各个…

Harris角点检测 及 Matlab实验

目录 1 基础知识 1.1 图像变化的类型 1.2 提取点特征的作用 1.3 什么是好的角点检测算法&#xff1f; 2 Harris 角点检测 2.1 Harris角点检测基本思想 2.2 Harris角点检测&#xff1a;数学描述 3 总结 4 Matlab 实验 参考资料 角点是图像重要的特征&#xff0c;对图像…

Harris的角点检测和特征匹配

一.特征检测&#xff08;提取&#xff09; 基于特征的图像配准方法是图像配准中最常见的方法之一。它不是直接利用图像像素值&#xff0c;二十通过像素值导出的符号特征&#xff08;如特征点、特征线、特征区域&#xff09;来实现图像配准&#xff0c;因此可以克服利用灰度信息…

Harris角点及Shi-Tomasi角点检测

一、角点定义 有定义角点的几段话&#xff1a; 1、角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法&#xff0c;广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。也称为特征点检测。 角点通常被定义为两条边的交点&#xff0…