首页 > 数据库 >oracle/mysql/lightdb/postgresql java jdbc类型映射

oracle/mysql/lightdb/postgresql java jdbc类型映射

时间:2022-12-10 16:32:32浏览次数:55  
标签:lang jdbc java lightdb OBJECTJAVA xxx 支持 sql byte

MySQL数据类型

JAVA数据类型

JDBC TYPE

普通变量类型

主键类型

BIGINT

Long

BIGINT

支持

支持

TINYINT

Byte

TINYINT

支持

不支持

SMALLINT

Short

SMALLINT

支持

不支持

MEDIUMINT

Integer

INTEGER

支持

支持

INTEGER

Integer

INTEGER

支持

支持

INT

Integer

INTEGER

支持

支持

FLOAT

Float

REAL

支持

不支持

DOUBLE

Double

DOUBLE

支持

不支持

DECIMAL

BigDecimal

DECIMAL

支持

不支持

NUMERIC

BigDecimal

DECIMAL

支持

不支持

CHAR

String

CHAR

支持

不支持

VARCHAR

String

VARCHAR

支持

不支持

TINYBLOB

DataTypeWithBLOBs.byte[]

BINARY

不支持

不支持

TINYTEXT

String

VARCHAR

支持

不支持

BLOB

DataTypeWithBLOBs.byte[]

BINARY

不支持

不支持

TEXT

DataTypeWithBLOBs.String

LONGVARCHAR

不支持

不支持

MEDIUMBLOB

DataTypeWithBLOBs.byte[]

LONGVARBINARY

不支持

不支持

MEDIUMTEXT

DataTypeWithBLOBs.String

LONGVARCHAR

不支持

不支持

LONGBLOB

DataTypeWithBLOBs.byte[]

LONGVARBINARY

不支持

不支持

LONGTEXT

DataTypeWithBLOBs.String

LONGVARCHAR

不支持

不支持

DATE

Date

DATE

支持

不支持

TIME

Date

TIME

支持

不支持

YEAR

Date

DATE

不支持

不支持

DATETIME

Date

TIMESTAMP

支持

不支持

TIMESTAMP

Date

TIMESTAMP

支持

不支持

  以下是商业数据库的。 

​​postgresql/lightdb​​ 

java.sql.Types 值

Java 类型

IBM DB2

Oracle

Sybase

SQL

Informix

 int8

BIGINT

java.lang.long

BIGINT

NUMBER (38, 0)

BIGINT

BIGINT

INT8

 

BINARY

byte[]

CHAR FOR BIT DATA

RAW

BINARY

IMAGE

BYTE

 

BIT

java.lang.Boolean

N/A

BIT

BIT

BIT

BIT

 bytea/blob

BLOB

byte[]

BLOB

BLOB

BLOB

BLOB

BLOB

 bpchar/char

CHAR

java.lang.String

CHAR, GRAPHIC

CHAR

CHAR

CHAR

CHAR

 text

CLOB

java.lang.String

CLOB, DBCLOB

CLOB

CLOB

CLOB

CLOB

 

DATE

java.sql.Date

DATE

DATE

DATE

DATE

DATE

 

DECIMAL

java.math.BigDecimal

DECIMAL

NUMBER

DECIMAL, MONEY, SMALLMONEY

DECIMAL

DECIMAL

 

DOUBLE

java.lang.Double

DOUBLE

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

 

FLOAT

java.lang.Double

FLOAT

FLOAT

FLOAT

FLOAT

FLOAT

 int4

INTEGER

java.lang.Integer

INTEGER

INTEGER

INT

INTEGER

INTEGER

 

JAVA_OBJECT

java.lang.Object

JAVA_OBJECT

JAVA_OBJECT

JAVA_OBJECT

JAVA_OBJECT

OPAQUE

 bytea

LONGVARBINARY

byte[]

LONG VARCHAR FOR BIT DATA

LONG RAW

IMAGE

IMAGE

BYTE

 TEXT

LONGVARCHAR

java.lang.String

LONG VARCHAR, LONG VARGRAPHIC

LONG

TEXT

TEXT

TEXT

number/numeric

NUMERIC

java.math.BigDecimal

NUMERIC

NUMBER

NUMERIC

NUMERIC

NUMERIC

 

OTHER

java.lang.Object

OTHER

OTHER

OTHER

OTHER

OTHER

 

REAL

java.lang.Float

REAL

REAL

REAL

REAL

REAL

 int2

SMALLINT

java.lang.Integer

SMALLINT

SMALLINT

SMALLINT

SMALLINT

SMALLINT

 time

TIME

java.sql.Time

TIME

无对应,pg time无日期部分,且不支持0日期,所以无法计算合理值。

TIME

TIME

DATETIME HOUR TO SECOND

 timestamp/datetime(sysdate)

TIMESTAMP

java.sql.Timestamp

TIMESTAMP

timestamp

DATETIME, SMALLDATETIME

DATETIME

DATETIME YEAR TO FRACTION (5)

timestamptz

pg的时区格式为+10

2022-07-05 21:08:53.598693+08

 

 

 

timestamp with time zone

需要注意的是,oracle的时区格式为+10:00

 

 

 

 

TINYINT

java.lang.Bute

SMALLINT

TINYINT

TINYINT

TINYINT

TINYINT

 

VARBINARY

byte[]

VARCHAR FOR BIT DATA

RAW

VARBINARY

IMAGE

BYTE

 varchar/varchar2/text

VARCHAR

java.lang.String

VARCHAR, VARGRAPHIC

VARCHAR

VARCHAR

VARCHAR

VARCHAR

 

  Oracle ResultSetMetaData getPrecision/getScale有一个bug,count(*) as xxx、abs(col) as xxx,这样xxx是无法返回正确的Scale和Precision的,要想这些情况下返回正确的值,需要使用明确的cast(xxx as datatype)。参见https://stackoverflow.com/questions/1410267/oracle-resultsetmetadata-getprecision-getscale



标签:lang,jdbc,java,lightdb,OBJECTJAVA,xxx,支持,sql,byte
From: https://blog.51cto.com/zhjh256/5927794

相关文章

  • 【Java】【数据库】B树
    B-树的形式(B-树就是B树,而且'-'是一个连接符号,不是减号。)B树的结构如下不同于B+树(关于B+树,我的这篇博客里有写:B+树)的一些特点:数据\(K_i\)左边的树不会将\(K_i\)......
  • java 接口(interface)
    接口的作用:1.接口就是约束,它可以定义一些方法,让不同的人实现。2.接口不能被实例化,接口中没有构造方法。3.接口可以实现多个通过implement关键字去实现,实......
  • 小新学Java16-【缓冲流、转换流、序列化流】
    一、缓冲流1.1概述缓冲流,也叫高效流,是对4个基本的Filexxx流的增强,所以也是4个流,按照数据类型分类︰字节缓冲流︰BufferedInputStream,BufferedoutputStream字符......
  • javascript: addEventListener对事件冒泡和事件捕获的处理演示(chrome 108.0.5359.98)
    一,js代码<html><head><metacharset="utf-8"/><title>测试</title></head><bodystyle="padding:0px;margin:0px;"><buttonid="btn">点击</button>......
  • Java网络编程总结
    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,......
  • java中this的使用
    本文主要讲述java中this的使用示例1,代码如下:publicclassContructorDetail{publicstaticvoidmain(String[]args){Personp=newPerson("Tom",18......
  • Java之工作日的计算
    业务开发中,若要求获取下一个工作日或上一个工作日,则可使用以下Java类。packagecom.cmit.kapok.system.utils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;imp......
  • Java把List转成以逗号分隔的字符串
    privatestatic<T>StringparseListToStr(List<T>list){Stringresult=list.stream().map(o->(String)"'"+o+"'").collect(Collectors.joining(","));return......
  • 教你几个 Java 编程中的奇技淫巧
    枯燥的编程中总得有些乐趣,今天我们不谈论那些高深的技能,教你几个在编程中的奇技淫巧,说不定在某些时候还能炫耀一番呢。1、找到最大值和最小值不使用ifelseswitch和三......
  • java-net-php-python-jsp大学生兼职管理系统计算机毕业设计程序
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......