mybatis与oracle数据库jdbcType类型对应关系

之前都是百度上搜的,各种对应的都有,总觉得有问题,最后直接通过跑代码查看了一下对应关系,我用的oracle是19c。
常见的对应关系如下

oracle类型jdbcType
VARCHAR2JdbcType.VARCHAR
NVARCHARJdbcType.NVARCHAR
CHARJdbcType.CHAR
CLOBJdbcType.CLOB
BLOBJdbcType.BLOB
NCLOBJdbcType.NCLOB
NUMBERJdbcType.NUMERIC
DATEJdbcType.TIMESTAMP
TIMESTAMPJdbcType.TIMESTAMP

NUMBER(*),NUMBER(2),NUMBER(2,2),NUMBER(0,2)这种都是JdbcType.NUMERIC

找对应关系的步骤:

  1. oracle中建一张表,多弄一个属性,每个属性一个类型
    忽略表名和列名😂,这里注意一下这几个NUMBER类型,有的类型其实我建的是INTERGE和DECIMA,但是实际上表建好之后,还是使用的NUMBER,这个有疑惑的可以去百度一下,大概就是oracle数字类型的其实只有NUMBER,其他一些整数类型啥的都是建立在NUMBER上的。
    在这里插入图片描述

  2. java中用jdbc查看jdbcType

    @Test
    public void testDD() {try {// 加载数据库驱动程序Class.forName("oracle.jdbc.OracleDriver");// 建立数据库连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@你的ip:1521/xxxxx", "用户名", "密码");// 创建Statement对象Statement stmt = conn.createStatement();// 执行查询语句ResultSet rs = stmt.executeQuery("select * from AAAA");// 获取结果集元数据ResultSetMetaData metaData = rs.getMetaData();// 遍历结果集并查询jdbcTypewhile (rs.next()) {for (int i = 1; i <= metaData.getColumnCount(); i++) {int jdbcType = metaData.getColumnType(i);String columnTypeName = metaData.getColumnTypeName(i);// 输出jdbcType的编码和名称System.out.println("Column " + metaData.getColumnName(i) + " has jdbcType: " + jdbcType + " has name " + columnTypeName);}}// 关闭连接和释放资源rs.close();stmt.close();conn.close();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}
    }
    

    运行上面的代码,得到的结果截图
    在这里插入图片描述
    注意这个类型名称和mybatis的JdbcType不是同一个名称

  3. 打开org.apache.ibatis.type.JdbcType枚举源码和java.sql.Types源码,mybatis中的JdbcType是对应的java中的Types类中的编码,直接拿着前面代码执行结果中的编码去Types类中找常量,然后再来JdbcType枚举类中找对应枚举。
    java.sql下面其实也有一个JDBCType类,这里不管
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习中的混沌工程:拥抱不可预测性以增强系统鲁棒性埃

一、介绍 在动态发展的技术世界中&#xff0c;机器学习 (ML) 已成为一股革命力量&#xff0c;推动各个领域的创新。然而&#xff0c;随着机器学习系统的复杂性不断增加&#xff0c;确保其可靠性和鲁棒性已成为首要问题。这就是混沌工程发挥作用的地方&#xff0c;混沌工程是一门…

Android Compose Transition 动画

Transition 是一种动画效果&#xff0c;用于在组件的状态之间进行平滑的过渡。它可以帮助我们在状态变化时&#xff0c;以一种流畅的方式更新 UI。通过使用 Compose 的 Transition API&#xff0c;您可以在应用中创建各种各样的动画效果&#xff0c;从而增强用户体验并提高应用…

Axure元件库使用与ProcessOn流程图

Axure元件库 自定义Axure元件库&#xff1a; 打开Axure RP软件&#xff0c;并点击菜单栏中的“元件库”选项&#xff0c;选择“新建元件库”。 在弹出的对话框中&#xff0c;选择一个文件夹来保存您的自定义元件库&#xff0c;并给它一个名称。 在Axure RP的主界面上&#x…

四、Java流程控制

第一章 流程控制语句 在一个程序执行的过程中&#xff0c;各条语句的执行顺序对程序的结果是有直接影响的。所以&#xff0c;我们必须清楚每条语句的执行流程。而且&#xff0c;很多时候要通过控制语句的执行顺序来实现我们想要的功能。 1.1 流程控制语句分类 ​ 顺序结构 …

机器学习---逻辑回归算法

1、逻辑回归 逻辑回归又叫logistic回归分析&#xff0c;是一种广义的线性回归分析模型。线性回归要求因变量必须是连续性的数据变量&#xff0c;逻辑回归要求因变量必须是分类变量&#xff0c;可以是二分类或者多分类(多分类都可以归结到二分类问题)&#xff0c;逻辑回归的输出…

深入理解 Go 语言 Goroutine 的工作原理

一、设计思路 1、设计描述 启动服务之时先初始化一个 Goroutine Pool 池&#xff0c;这个 Pool 维护了一个类似栈的 LIFO 队列&#xff0c;里面存放负责处理任务的 Worker然后在 client 端提交 task 到 Pool 中之后&#xff0c;在 Pool 内部&#xff0c;接收 task 之后的核心…

数据库数据恢复—Mysql数据库误删表数据的数据恢复案例

mysql数据库数据恢复环境&#xff1a; 本地服务器&#xff0c;windows server操作系统 &#xff0c;部署有mysql单实例&#xff0c;数据库引擎类型为innodb&#xff0c;独立表空间&#xff0c;无数据库备份&#xff0c;未开启binlog。 mysql数据库故障&#xff1a; 工作人员使…

勒索病毒最新变种.mallox勒索病毒来袭,如何恢复受感染的数据?

导言&#xff1a; 威胁着我们数据安全的勒索病毒如.mallox已经变得愈发狡猾和具有挑战性。本文91数据恢复将深入介绍.mallox勒索病毒的特征、恢复受害数据的方法&#xff0c;以及一些预防措施&#xff0c;助您更好地应对这一威胁。 如果受感染的数据确实有恢复的价值与必要性&…

HarmonyOS应用开发初体验

9月25日华为秋季全场景新品发布会上&#xff0c;余承东宣布&#xff0c;全面启动鸿蒙原生应用&#xff0c;HarmonyOS NEXT开发者预览版将在2024年第一季度面向开发者开放。 最近鸿蒙开发可谓是火得一塌糊涂&#xff0c;各大培训平台都开设了鸿蒙开发课程。美团发布了鸿蒙高级工…

ZLMediaKit 编译以及测试(Centos 7.9 环境)

文章目录 一、前言二、编译器1、获取代码2、编译器2.1 编译器版本要求2.2 安装编译器 3、安装cmake4、依赖库4.1 依赖库列表4.2 安装依赖库4.2.1 安装libssl-dev和libsdl-dev4.2.2 安装 ffmpeg-devel依赖和ffmpeg依赖 三、构建和编译项目&#xff08;启用WebRTC功能&#xff09…

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些&#xff1f; Java程序存储数据&#xff08;变量、对象、数组、集合&#xff09;&#xff0c;数据保存在内存中&#xff0c;属于瞬时状态存储。 文件&#xff08;File&#xff09;存储数据&#xff0c;保存…

电商类app如何进行软件测试?有必要进行第三方软件测试吗?

电商类app在开发过程中&#xff0c;软件测试是一个非常重要的环节。通过软件测试&#xff0c;可以确保app在发布和使用过程中的稳定性和安全性。那么&#xff0c;电商类app究竟如何进行软件测试?是否有必要进行第三方软件测试? 一、电商类app如何进行软件测试?   1. 内部…

武汉小程序开发全攻略:从创意到上线,10个必备步骤详解

在移动互联网快速发展的今天&#xff0c;武汉小程序开发成为越来越受关注的领域。作为专业从业者&#xff0c;我将为您详细解读武汉小程序开发的全攻略&#xff0c;从创意到上线的十个必备步骤&#xff0c;助您轻松掌握小程序开发的要点。 步骤一&#xff1a;明确小程序定位与…

python numpy 两种方法将相同shape的一维数组合并为二维数组

1 np.column_stack 最简单的一种方法 将多个一维数据按【列】合并为二维数组 import numpy as np# a b 都是一维数组 a np.array((1,2,3)) b np.array((2,3,4))# 变成二维 merge np.column_stack((a,b)) # array([[1, 2],[2, 3],[3, 4]])2 np.hstack 尽管该函数也是对【列…

FPGA乒乓操作详解,知道与FIFO的区别吗?

FPGA乒乓操作是一种高效的数据流控制处理技巧&#xff0c;它主要应用于需要快速且连续数据处理和缓冲的场合。乒乓操作的核心在于利用两个缓冲区交替存储数据流&#xff0c;从而实现数据的无缝实时传输和处理。 本文将详细介绍乒乓操作的基本原理、应用场景以及与FIFO的区别。…

超越GPT-4!谷歌AI大模型Gemini震撼发布

原创 | 文 BFT机器人 在Open AI风头正盛之际&#xff0c;谷歌大杀器终于上线&#xff01; 当地时间12月6日&#xff0c;谷歌CEO桑达尔・皮查伊宣布正式推出其规模最大、功能最强大的新大型语言模型Gemini 1.0版。 据悉&#xff0c;Gemini 1.0是谷歌筹备了一年之久“对抗”GPT-…

python通过selenium获取输入框的文本值爬取编辑框内容

以百度首页的输入框为例,当输入‘你好‘后&#xff0c;html中的value的值会变成‘你好’ from selenium import webdriver web webdriver.Chrome() web.get(http://www.baidu.com) # 初始页面 cc web.find_element_by_xpath(//*[id"kw"]) #定位输入通过复制xpat…

Excel单元格隐藏如何取消?

Excel工作表中的有些单元格隐藏了数据&#xff0c;如何取消隐藏行列呢&#xff1f;今天分享几个方法给大家 方法一&#xff1a; 选中隐藏的区域&#xff0c;点击右键&#xff0c;选择【取消隐藏】就可以了 方法二&#xff1a; 如果工作表中有多个地方有隐藏的话&#xff0c;…

数据分析基础之《numpy(1)—介绍》

一、numpy介绍 1、numpy 数值计算库 num - numerical 数值化的 py - python 2、numpy是一个开源的python科学计算库&#xff0c;用于快速处理任意维度的数组 numpy支持常见的数组和矩阵操作。对于同样的数值计算任务&#xff0c;使用numpy比直接使用python要简洁的多 numpy使…

二、如何保证架构的质量、架构前期准备、技术填补与崩溃预防、系统重构

1、如何保证架构的质量 -- 稳定性和健壮性 2、正确的选择是良好的开端 -- 架构前期准备 ① 架构师分类&#xff1a;系统架构师、应用架构师、业务架构师 3、技术填补与崩溃预防 4、系统重构