SQL数据类型对应的Java类型
Java和C或C++的数据类型对照表
![Java和C或C++的数据类型对照表](https://img.taocdn.com/s3/m/4bad68c97e192279168884868762caaedd33ba97.png)
Java和C或C++的数据类型对照表java的数据类型和C++的对应关系(⼤部分可⽤,⼩部分需要根据实际情况调整)C++Javachar *Stringword shortbyte bytebyte[]byte[]dword intlong NativeLongVoid *Pointerlpvoid PointerlpDword IntByReferenceHWND HWNDchar[]byte[]byte *PointerJava和C的数据类型对照表Java类型C类型原⽣表现boolean int32位整数(可定制)byte char8位整数char wchar_t平台依赖short short16位整数int int32位整数long long,__int6464位整数float float32位浮点数double double64位浮点数Buffer/Pointer pointer平台依赖(32或64位指针)pointer/array32或64位指针(参数/返回值)邻接内存(结构体成员)String char*/0结束的数组(nativeencodingorjna.encoding)WString wchar_t*/0结束的数组(unicode)String[]char**/0结束的数组的数组WString[]wchar_t**/0结束的宽字符数组的数组Structure struct*/struct 指向结构体的指针(参数或返回值)(或者明确指定是结构体指针)结构体(结构体的成员) (或者明确指定是结构体)Union union等同于结构体Structure[]struct[]结构体的数组,邻接内存Callback(*fp)()Java函数指针或原⽣函数指针NativeMapped varies依赖于定义NativeLong long平台依赖(32或64位整数) PointerType pointer和Pointer相同。
sql数据库常用类型
![sql数据库常用类型](https://img.taocdn.com/s3/m/2a59467c0812a21614791711cc7931b765ce7b2e.png)
sql数据库常用类型SQL数据库中有几种常用的数据类型,这些数据类型允许您在表中存储不同种类的数据。
这里列举了一些常见的SQL数据类型:1. 整数类型(Integer Types):- `INT`:用于存储整数值。
- `SMALLINT`:用于存储较小范围的整数值。
- `BIGINT`:用于存储较大范围的整数值。
2. 小数/浮点类型(Decimal/Floating-Point Types):- `DECIMAL(precision, scale)` 或`NUMERIC(precision, scale)`:用于存储精确的小数值,`precision` 表示总位数,`scale` 表示小数位数。
- `FLOAT` 或`REAL`:用于存储浮点数值,通常用于需要近似值的情况。
3. 字符类型(Character Types):- `CHAR(n)`:用于存储固定长度的字符串,最多可以存储`n` 个字符。
- `V ARCHAR(n)` 或`V ARCHAR2(n)`:用于存储可变长度的字符串,最多可以存储`n` 个字符。
- `TEXT`:用于存储大文本对象((长字符串),适合存储大段文本。
4. 日期和时间类型(Date and Time Types):- `DATE`:用于存储日期。
- `TIME`:用于存储时间。
- `DATETIME` 或`TIMESTAMP`:用于存储日期和时间。
- `INTERV AL`:用于存储时间间隔。
5. 二进制类型(Binary Types):- `BLOB`:用于存储二进制大对象,如图像、音频或视频文件等。
- `BYTEA`(PostgreSQL中):用于存储二进制数据。
6. 布尔类型(Boolean Type):- `BOOLEAN`:用于存储逻辑值(true或false)。
7. 枚举类型(Enum Types):- `ENUM`:允许您在有限的可能值列表中选择一个值。
java中sqllite数据库blob数据类型的存取
![java中sqllite数据库blob数据类型的存取](https://img.taocdn.com/s3/m/b9df3a6c960590c69fc376c1.png)
JAVA 中SQLlite数据库BLOB数据类型的存取找了好多资料,在sqllite 在写入文件没什么难的,但是在取出blob的生成本地文件的时候存在问题,而且网上大部分都是针对手机开发的,很少有java对sqllite的介绍/*** sqllite数据库文件的存储** @return*/private static void testSqlliteFile() throws IOException {Connection conn = null;Statement sta = null;try {Class.forName("org.sqlite.JDBC");} catch (ClassNotFoundException e) {e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.}try {conn = DriverManager.getConnection("jdbc:sqlite:" + SetCustomFinal.getInstance().getFileDiskStoreFolder() + SetCustomFinal.getInstance().getFileItemStoreFolder() + "\\DBU1111111.DB", "", "");} catch (SQLException e) {e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.}try {sta = conn.createStatement();} catch (SQLException e) {e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.}//上面没什么好废话的链接sqllite的jdbc// 读取数据File Insertefile = new File("D:\\进程.chm");//读取本地文件FileInputStream fis = new FileInputStream(Insertefile);//将本地文件转为文件流byte[] bs = new byte[Integer.parseInt("" + Insertefile.length())];//sqllite 不能直接存如文件流,直接存byte【】数组。
sql常用的数据类型
![sql常用的数据类型](https://img.taocdn.com/s3/m/f8afc1370640be1e650e52ea551810a6f524c8b5.png)
在SQL中,常用的数据类型包括以下几种:整数类型(Integer Types):INT:常用的整数类型,表示带符号的整数。
TINYINT:范围较小的整数类型,通常用于存储布尔值或很小的整数。
SMALLINT:较小范围的整数类型。
BIGINT:较大范围的整数类型。
浮点数类型(Floating-Point Types):FLOAT(M, D):单精度浮点数,可以指定总位数(M)和小数位数(D)。
DOUBLE(M, D):双精度浮点数,可以指定总位数(M)和小数位数(D)。
DECIMAL(M, D):用于高精度的十进制数,可以指定总位数(M)和小数位数(D)。
字符串类型(String Types):CHAR(N):固定长度的字符类型,最多可以存储N 个字符。
VARCHAR(N):可变长度的字符类型,最多可以存储N 个字符。
TEXT:用于存储较大文本数据的类型。
日期和时间类型(Date and Time Types):DATE:用于存储日期,如YYYY-MM-DD。
TIME:用于存储时间,如HH:MM:SS。
DATETIME:用于存储日期和时间,如YYYY-MM-DD HH:MM:SS。
布尔类型(Boolean Type):BOOL 或BOOLEAN:用于存储布尔值,如TRUE 或FALSE。
二进制类型(Binary Types):BLOB:用于存储二进制数据,如图像或文件。
BINARY(N):固定长度的二进制数据类型,最多可以存储N 字节。
VARBINARY(N):可变长度的二进制数据类型,最多可以存储N 字节。
其他类型:ENUM:用于存储从预定义列表中选择的值。
JSON:用于存储JSON 数据。
UUID:用于存储唯一标识符。
mysql和Oracle数据类型对照
![mysql和Oracle数据类型对照](https://img.taocdn.com/s3/m/4b663ecdd4bbfd0a79563c1ec5da50e2524dd1fe.png)
mysql和Oracle数据类型对照MySQL与Oracle两种数据库在⼯作中,都是⽤的⽐较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上⼀定的⿇烦,下⾯介绍MySQL与Oracle数据库数据类型的对应关系。
⼀、常见数据类型在MySQL与Oracle数据库中的表现形式说明mysql oracle变长字符串VARCHAR[0-65535]定义长度默认按字符长度计算,如果是GBK编码的汉字将占⽤2个字节VARCHAR2[1-4000]VARCHAR是VARCHAR2的同义词定义默认按字节长度计算整数TINYINT(-128-127)SMALLINT(-32768-32767)MEDIUMINT(-8388608-8388607)INT(-2147483648-2147483647)BIGINT(-9223372036854775808-9223372036854775807)⽆专⽤类型,TINYINT可以⽤NUMBER(3,0)代替SMALLINT可以⽤NUMBER(5,0)代替MEDUIMINT可以⽤NUMBER(7,0)代替INT可以⽤NUMBER(10,0)代替BIGINT可以⽤NUMBER(20,0)代替ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词数值类型DECIMAL[1-65[,0-30]]NUMERIC是DECIMAL的同义词NUMBER 可表⽰数范围: 1*10^-130⾄1*10^126NUMBER([1-38][,-84-127])DECIMAL、NUMERIC、DEC是NUMBER的同义词浮点型FLOAT(D,M)oracle10g开始增加BINARY_FLOAT类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有FLOAT和REAL类型,不过这是NUMBER的同义词双精度浮点型DOUBLE(D,M)oracle10g开始增加BINARY_DOUBLE类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有DOUBLE PRECISION类型,不过这是NUMBER的同义词位类型BIT(1-64)⽆DATE,3字节存储,只存储⽇期,没有时间,⽀持范围是[1000-01-01]⾄[9999-12-31]TIME,3字节存储,只存储时⽇期类型TIME,3字节存储,只存储时间,没有⽇期,⽀持范围是[-838:59:59]⾄[838:59:59]DATETIME,占8字节存储,可表⽰⽇期和时间,⽀持范围是[1000-01-01 00:00:00]⾄[9999-12-31 23:59:59]TIMESTAMP,占4字节存储,可表⽰⽇期和时间,范围是[1970-01-01 00:00:00]⾄[2038-01-19 03:14:07]DATE类型7字节存储,可表⽰⽇期和时间,⽀持范围是[-4712-01-01 00:00:00]⾄[9999-12-31 23:59:59]⾼精度⽇期5.6.4以前不⽀持⼩数秒精度5.6.4开始TIME,DATETIME,TIMESTAMP⽀持,最多可以6位⼩数秒,也就是微秒级别TIMESTAMP[0-9]占⽤空间7-11个字节,当⼩数秒精度为0时与DATE类型相同,⼩数秒最⾼精度可达9位,也就是纳精度年份份,⽀持范围是[1901]⾄[2155]⽆对应类型,可以⽤NUMBER(3,0)代替定长字符串CHAR[0-255],定义长度默认按字符长度计算,最⼤保存255字符CHAR[1-2000]定义默认按字节长度计算⽆符号说明⽀持,⽤于数值类型不⽀持⼤字符串,⼀般⽤于存储⽂本⽂件或超⼤描述及备注类信息TINYTEXT 最⼤⽀持255个字节TEXT最⼤⽀持65535个字节MEDIUMTEXT最⼤⽀持16MB个字节LONGTEXT最⼤⽀持4GB字节字段不⽀持默认值⽀持(CLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4GB个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONG类型,是早期的存储⼤字符串类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制对象,⼀般⽤于存储⽂件或图⽚数据TINYBLOB 最⼤⽀持255个字节BLOB最⼤⽀持65535个字节MEDIUMBLOB最⼤⽀持16MB个字节LONGBLOB最⼤⽀持4GB字节字段不⽀持默认值⽀持(BLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4G个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONGRAW类型,是早期的存储⼆进制类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制信息BINARY(0-255),定长VARBINARY(0-65535),变长RAW(1-2000)枚举类型ENUM(v1,v2,v3,...),最多65535个元素不⽀持集合类型SET(v1,v2,v3,...),最多64个元素不⽀持国际化字符集类型,较少使⽤⽆,MYSQL可以对每个字段指定字符编码⽀持NCHAR(1-2000) NVARCHAR(1-4000)外部⽂件指针类型不⽀持⽀持⽂件⼤⼩最⼤4GB⽂件名称最长255字符不⽀持⽀持⾃动增长类型⽀持使⽤简单不⽀持⼀般使⽤SEQUENCE解决,⽤法与⾃增类型差别较⼤,使⽤较复杂,但能实现⾮常灵活的应⽤,包括字符⾃增主键、全局主括字符⾃增主键、全局主键等等不⽀持函数和表达式TEXT和BLOB字段类型不⽀持默认值⽀持函数和表达式⽀持,例如,把emp表的id字段顺序放在name字段后⾯:alter table emp modify column id varchar(20) after name;不⽀持,只能重建表或字段虚拟字段是⼀个逻辑字段定义,其结果值通常是⼀个表达式,并在表中存储物理值,不占⽤空间,主要⽤于简化查询逻辑。
sql中数据类型表示方法
![sql中数据类型表示方法](https://img.taocdn.com/s3/m/2477a7390a4e767f5acfa1c7aa00b52acfc79c3b.png)
sql中数据类型表示方法
在SQL中,数据类型用于定义不同种类的数据。
这些数据类型可以帮助我们确定如何存储、处理和操作数据。
以下是一些常见的SQL 数据类型表示方法:
1. 字符串类型(CHAR,VARCHAR,TEXT):用于存储文本数据,最常见的是VARCHAR。
VARCHAR可以存储可变长度的字符,而CHAR则存储固定长度的字符。
TEXT用于存储较长的文本数据。
2. 数值类型(INT,FLOAT,DECIMAL):用于存储数字数据。
INT 用于存储整数,FLOAT和DOUBLE用于存储小数,DECIMAL用于存储精确小数。
3. 日期/时间类型(DATE,TIME,DATETIME):用于存储日期和时间数据。
DATE用于存储日期,TIME用于存储时间,而DATETIME同时保存日期和时间。
4. 布尔类型(BOOLEAN):用于存储真/假值。
5. 二进制类型(BLOB):用于存储二进制数据,例如图像或音频文件。
以上是一些常见的SQL数据类型表示方法。
在定义列时,必须选择适当的数据类型以确保数据的正确存储和处理。
- 1 -。
SQLSERVER与C#数据类型对照表
![SQLSERVER与C#数据类型对照表](https://img.taocdn.com/s3/m/3a34154bbf23482fb4daa58da0116c175f0e1eaf.png)
SQLSERVER与C#数据类型对照表SQL SERVER类型类型说明C#类型精确数字bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。
存储⼤⼩为 8 个字节。
Int64int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。
存储⼤⼩为 4 个字节。
int 的 SQL-92 同义字为 integer。
Int32smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。
存储⼤⼩为 2 个字节。
Int16tinyint从 0 到 255 的整型数据。
存储⼤⼩为 1 字节。
System.Byte bit 1 或 0 的整数数据。
Boolean decimal从 -10^38 +1 到 10^38 –1 的固定精度和⼩数位的数字数据。
System.Decimal numeric功能上等同于 decimal。
System.Decimal money货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之⼗。
System.Decimal smallmoney货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之⼗。
System.Decimal近似数字float从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。
System.Double real从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。
System.Single时间datetime从 1753 年 1 ⽉ 1 ⽇到 9999 年 12 ⽉ 31 ⽇的⽇期和时间数据,精确到百分之三秒(或 3.33 毫秒)。
java各种数据类型的互相转换
![java各种数据类型的互相转换](https://img.taocdn.com/s3/m/7423f86e9a6648d7c1c708a1284ac850ad0204af.png)
java各种数据类型的互相转换StringBuilder转化为StringString str = "abcdefghijklmnopqrs";StringBuilder stb = new StringBuilder(str);整型数组转化为字符串StringBuilder s = new StringBuilder();for(i=1;i<=n;i++) {s.append(String.valueOf(a[i]));}String str = ""+s;字符串转化为整形数组String str="123456";int[] a = new int[str.length()];for(int i=0;i<str.length();i++) {a[i] = str.charAt(i)-'0';}字符串转化为字符数组String str="123456";char[] c = str.toCharArray() ;System.out.println(c);字符数组转化为字符串char[] c = {'a','s','d','4','5',};String str = new String(c);System.out.println(str);字符数组转化为整型数组char[] c = { '1', '2', '3', '4', '5', };int[] a = new int[c.length];for (int i = 0; i < 5; i++) {a[i] = c[i] - '0';System.out.println(a[i]);}整型数组转化为字符数组int[] a = {1,2,3,4,5};char[] c = new char[a.length];for (int i = 0; i < 5; i++) {c[i] = (char) (a[i]+'0');System.out.println(c[i]);}整型数转化为字符串1.String str = Integer.toString(i);2.String s = String.valueOf(i);3.String s = "" + i;字符串转化为整型数int i = Integer.valueOf(str).intValue();java类型转换 Integer String Long Float Double Date1如何将字串 String 转换成整数 int?A. 有两个⽅法:1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);2). int i = Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的⽅法⼤同⼩异.2 如何将整数 int 转换成字串 String ?A. 有叁种⽅法:1.) String s = String.valueOf(i);2.) String s = Integer.toString(i);3.) String s = "" + i;注: Double, Float, Long 转成字串的⽅法⼤同⼩异.package .lwkj.erts.register;import java.sql.Date;public class TypeChange {public TypeChange() {}//change the string type to the int typepublic static int stringToInt(String intstr){Integer integer;integer = Integer.valueOf(intstr);return integer.intValue();}//change int type to the string typepublic static String intToString(int value){Integer integer = new Integer(value);return integer.toString();}//change the string type to the float typepublic static float stringToFloat(String floatstr){Float floatee;floatee = Float.valueOf(floatstr);return floatee.floatValue();}//change the float type to the string typepublic static String floatToString(float value){Float floatee = new Float(value);return floatee.toString();}//change the string type to the sqlDate typepublic static java.sql.Date stringToDate(String dateStr){return java.sql.Date.valueOf(dateStr);}//change the sqlDate type to the string typepublic static String dateToString(java.sql.Date datee){return datee.toString();}public static void main(String[] args){java.sql.Date day ;day = TypeChange.stringToDate("2003-11-3");String strday = TypeChange.dateToString(day);System.out.println(strday);}} /* 我们 */JAVA中常⽤数据类型转换函数虽然都能在JAVA API中找到,整理⼀下做个备份。
java.sql.Types,数据库字段类型,java数据类型的对应关系
![java.sql.Types,数据库字段类型,java数据类型的对应关系](https://img.taocdn.com/s3/m/ab854ab0294ac850ad02de80d4d8d15abe230002.png)
java.sql.Types,数据库字段类型,java数据类型的对应关系本概述是从《JDBC TM Database Access from Java TM: A Tutorial and Annotated Reference》这本书中摘引来的。
JavaSoft ⽬前正在准备这本书。
这本书是⼀本教程,同时也是 JDBC 的重要参考⼿册,它将作为 Java 系列的组成部份,在 1997 年春季由 Addison-Wesley 出版公司出版。
8.1 概述由于 SQL 数据类型和 Java 数据类型是不同的,因此需要某种机制在使⽤ Java 类型的应⽤程序和使⽤ SQL 类型的数据库之间来读写数据。
为此,JDBC 提供了getXXX和setXXX⽅法集、⽅法registerOutParameter和类Types。
本章汇集了影响各种类和接⼝的数据类型的有关信息,并列出所有的对应关系表(这些表显⽰了 SQL 类型和 Java 类型之间的映射关系)以便于参考。
8.2 将 SQL 数据类型映射为 Java 类型不幸的是,不同数据库产品所⽀持的 SQL 类型之间有很⼤的不同。
即使不同的数据库以相同的语义⽀持 SQL 类型,它们也可能⽤不同的名称。
例如,绝⼤多数的主流数据库都⽀持⼀种表⽰⼤型⼆进制值的 SQL 类型,但 Oracle 把这种类型叫做LONG RAW,Sybase 把它叫做IMAGE,Informix 却把它叫做BYTE,⽽ DB2 ⼜把它叫做LONG VARCHAR FOR BIT DATA。
幸运的是,JDBC 程序员通常并不需要⾃⼰去关⼼⽬标数据库所⽤的实际 SQL 类型的名称。
⼤多数时候,JDBC 程序员将根据⼀些现有的数据库表来进⾏编程。
他们⽆须关⼼⽤于创建这些表的确切 SQL 类型的名称。
JDBC 在java.sql.Types类中定义了⼀系列的常规 SQL 类型标识符。
这些类型可⽤于表⽰那些最为常⽤的 SQL 类型。
java.sql.Date和java.sql.Timestamp转换
![java.sql.Date和java.sql.Timestamp转换](https://img.taocdn.com/s3/m/15e20e3a3069a45177232f60ddccda38376be19f.png)
java.sql.Date和java.sql.Timestamp转换在开发web应⽤中,针对不同的数据库⽇期类型,我们需要在我们的程序中对⽇期类型做各种不同的转换。
若对应数据库数据是oracle的Date类型,即只需要年⽉⽇的,可以选择使⽤java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型。
既需要年⽉⽇时分秒的,选择java.sql.Timestamp类型。
你可以使⽤dateFormat定义时间⽇期的格式,转⼀个字符串即可。
package personal.jessica;import java.util.Date;import java.util.Calendar;import java.sql.Timestamp;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Locale;class Datetest{/***method 将字符串类型的⽇期转换为⼀个timestamp(时间戳记java.sql.Timestamp)dateString 需要转换为timestamp的字符串dataTime timestamp*/public final static java.sql.Timestamp string2Time(String dateString)throws java.text.ParseException {DateFormat dateFormat;dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);dateFormat.setLenient(false);java.util.Date timeDate = dateFormat.parse(dateString);//util类型//Timestamp类型,timeDate.getTime()返回⼀个long型java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());return dateTime;}/***method 将字符串类型的⽇期转换为⼀个Date(java.sql.Date)dateString 需要转换为Date的字符串dataTime Date*/public final static java.sql.Date string2Date(String dateString)throws ng.Exception {DateFormat dateFormat;dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);dateFormat.setLenient(false);java.util.Date timeDate = dateFormat.parse(dateString);//util类型java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型return dateTime;}public static void main(String[] args){Date da = new Date();//注意:这个地⽅da.getTime()得到的是⼀个long型的值System.out.println(da.getTime());//由⽇期date转换为timestamp//第⼀种⽅法:使⽤new Timestamp(long)Timestamp t = new Timestamp(new Date().getTime());System.out.println(t);//第⼆种⽅法:使⽤Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)Timestamp tt = new Timestamp(Calendar.getInstance().get(Calendar.YEAR) - 1900, Calendar.getInstance().get(Calendar.MONTH), Calendar.getInstance().get(Calendar.DATE), Calendar.getInstance().get(Calendar.HOUR), Calendar.getInstance().get(Calendar.MINUTE), Calendar.getInstance().get(Calendar.SECOND), 0);System.out.println(tt);try {String sToDate = "2005-8-18";//⽤于转换成java.sql.Date的字符串String sToTimestamp = "2005-8-18 14:21:12.123";//⽤于转换成java.sql.Timestamp的字符串Date date1 = string2Date(sToDate);Timestamp date2 = string2Time(sToTimestamp);System.out.println("Date:"+date1.toString());//结果显⽰System.out.println("Timestamp:"+date2.toString());//结果显⽰}catch(Exception e) {e.printStackTrace();}}}///:~怎样处理⼀个时间段,⽐如某⼈登陆了xx天xx⼩时xx分xx秒。
mysql类型与java类型的对应
![mysql类型与java类型的对应](https://img.taocdn.com/s3/m/0808b5d188eb172ded630b1c59eef8c75fbf9568.png)
Java和数据库对应的数据类型速查Mys ql********************************************************************* 当前列Cl assNa me Col umnTy peD ispla ySize Typ eName0: javng.Inte gerColum nType:411IN TEGER1: javng.Inte gerColum nType:-64TI NYINT2: javng.Stri ngColum nType:120UN KNOWN3: javng.Bool eanColum nType:-71TI NYINT4: javng.Inte gerColum nType:56SM ALLIN T5: jav n g.Int egerColu mnTyp e:49M EDIUM INT6:j ava.l ang.I ntege r Co lumnT ype:411INTE GER7:j ava.l ang.L ong Col umnTy pe:-5 20BIGI NT8: ja va.la ng.Do uble Col umnTy pe:822DOUBL E9: jav n g.Dou ble Colu mnTyp e:822D OUBLE10:javng.Floa tC olumn Type:712FLO AT11:ja va.la ng.St ring Col umnTy pe:12 11UNKN OWN12:j ava.l ang.S tring Co lumnT ype:12 11UNK NOWN13:java.lang.Strin gC olumn Type:1 300CH AR14:ja va.la ng.St ring Col umnTy pe:12300VARC HAR15:j ava.s ql.Da teColu mnTyp e:91 10DATE16:java.sql.T imeCol umnTy pe:928TIME17:java.sql.D ateCol umnTy pe:914YEAR18:java.sql.T imest ampColum nType:9319T IMEST AMP19:j ava.s ql.Ti mesta mpC olumn Type:9319DA TETIM E20:[B Colu mnTyp e:-3255 TINY BLOB21:[BC olumn Type:-465535 BLOB22:[BColum nType:-416777215M EDIUM BLOB23:[BC olumn Type:-4-1 BL OB24:ja va.la ng.St ringColu mnTyp e:12255 TINY BLOB25:java.lang.Strin g Co lumnT ype:-165535TEXT26:java.lang.Strin g Co lumnT ype:-116777215ME DIUMB LOB27:j ava.l ang.S tring Col umnTy pe:-1-1 TEX T28:jav n g.Str ingColum nType:13C HAR29:j ava.l ang.S tring Col umnTy pe:13 CHARSQL Serve r******************************************************************0:ja va.la ng.In teger Col umnTy pe:411int i denti ty1:jav n g.Lon gColum nType:-520b igint2:byte[] Co lumnT ype:-2100bi nary3:j ava.l ang.B oolea n Co lumnT ype:-71bit4:j ava.l ang.S tring Co lumnT ype:110char5:java.sql.T imest ampColum nType:9323d ateti me6:jav a.sql.Time stamp Col umnTy pe:9323date time7:j ava.m ath.B igDec imalColum nType:320de cimal8:java.lang.Doubl eC olumn Type:622flo at9:byt e[]Colum nType:-42147483647imag e10: jav a.mat h.Big Decim al Co lumnT ype:321mone y11: jav n g.Str ing Colu mnTyp e:110n char12:java.lang.Strin gC olumn Type:-11073741823ntext13: java.math.BigD ecima l Col umnTy pe:220numer ic14: ja va.la ng.St ring Col umnTy pe:12 50nvar char15:java.lang.Float Co lumnT ype:713real16: java.sql.Times tamp Colu mnTyp e:93 16small datet ime17:j ava.l ang.I ntege r Co lumnT ype:5 6smal lint18:java.math.BigDe cimal Colu mnTyp e:312s mallm oney19:java.lang.Strin gC olumn Type:128000s ql_va riant20: javng.Stri ngColum nType:-12147483647text21: byte[]C olumn Type:-216ti mesta mp22: ja va.la ng.In teger Col umnTy pe:-63tinyi nt23: ja va.la ng.St ring Col umnTy pe:136uniqu eiden tifie r24: byt e[]Colum nType:-3100v arbin ary25:j ava.l ang.S tring Co lumnT ype:12 50var char*********************************************************************** MyS QL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。
mybatis 中java long对应oracle number的方法
![mybatis 中java long对应oracle number的方法](https://img.taocdn.com/s3/m/9d99cbc082d049649b6648d7c1c708a1284a0a9c.png)
mybatis 中java long对应oracle number的方法一、引言MyBatis作为一款优秀的持久层框架,被广泛用于Java开发。
而在与Oracle数据库交互时,可能会遇到Long数据类型与Oracle的Number数据类型的转换问题。
本文将介绍如何在MyBatis中实现Java Long到Oracle Number的转换。
二、Long到Number的转换在Java中,Long类型通常用于表示长整型数据。
而在Oracle数据库中,Number类型可以表示任意精度的数值,范围更大。
在进行数据传输时,我们需要将Java的Long类型转换为Oracle的Number类型。
首先,我们需要了解Java和Oracle的Number类型在表示范围和精度上的差异。
Java的Long类型可以表示到9223372036854775807,而Oracle的Number类型可以根据需要设置精度和小数位数,以适应更复杂的数据处理需求。
在MyBatis的映射文件中,我们可以使用TypeHandler来进行类型转换。
当执行插入或更新操作时,MyBatis会自动将Java对象转换为相应的SQL数据类型。
我们可以通过实现自己的TypeHandler,来实现Java Long到Oracle Number的转换。
三、实现TypeHandler下面是一个简单的TypeHandler示例,可以将Java的Long类型转换为Oracle的Number类型:```javapublic class LongTypeHandler extendsBaseTypeHandler<Long> {@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, Long parameter, JdbcType jdbcType) throws SQLException {ps.setLong(i, parameter);}@Overridepublic Long getNullableResult(ResultSet rs, String columnName) throws SQLException {return rs.getLong(columnName);}@Overridepublic Long getNullableResult(ResultSet rs, int columnIndex) throws SQLException {return rs.getLong(columnIndex);}@Overridepublic Long getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {return cs.getLong(columnIndex);}}```在上述代码中,我们重写了四个方法,分别对应PreparedStatement、ResultSet、CallableStatement的情况。
Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?
![Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?](https://img.taocdn.com/s3/m/8e664d2a4a35eefdc8d376eeaeaad1f346931196.png)
Oracle数据库以date类型保存⽇期时,Java中⽤哪个类对应数据
库的date类型?
1. 使⽤JDBC操作Oracle数据库时,使⽤java.sql.Date类型对应数据库的date类型,此时只能保存和读取⽇期部分,
时间(时分秒)部分不能读取和保存;
查询结果集可以直接获取Date类型的数据:java.sql.Date date=resultSet.getDate("dateTime");
java.sql.Date类型的数据也可以直接保存到数据库或者与数据库中date类型的数据直接⽐较⼤⼩;
字符串的⽇期,则⽤SQL语句的转换函数 to_date('2017-4-8','yyyy-mm-dd') 转换为date类型插⼊到数据库。
2. 使⽤Hibernate操作Oracle数据库时,使⽤java.util.Date类型对应数据库的date类型,此时数据库可以保存和读取到时分秒;
java.sql.Date 和java.util.Date 类型的数据都可以直接保存到数据库或者与数据库中date类型的数据直接⽐较⼤⼩,但从数
据库读取的⽇期数据要⽤java.util.Date 进⾏保存,因为java.sql.Date 是java.util.Date 的⼦类。
MySQL++:(转)mybatis常用jdbcType数据类型
![MySQL++:(转)mybatis常用jdbcType数据类型](https://img.taocdn.com/s3/m/5d71081a78563c1ec5da50e2524de518964bd38a.png)
MySQL++:(转)mybatis常⽤jdbcType数据类型1 MyBatis 通过包含的jdbcType类型BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINEDTINYINT REAL VARCHAR BINARY BLOB NVARCHARSMALLINT DOUBLE LONGVARCHAR VARBINARY CLOB NCHARINTEGER NUMERIC DATE LONGVARBINARY BOOLEAN NCLOBBIGINT DECIMAL TIME NULL CURSOR2 Mybatis中javaType和jdbcType对应和CRUD例⼦<resultMap type="java.util.Map" id="resultjcm"><result property="FLD_NUMBER" column="FLD_NUMBER" javaType="double" jdbcType="NUMERIC"/><result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/><result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/><result property="FLD_INTEGER" column="FLD_INTEGER" javaType="int" jdbcType="INTEGER"/><result property="FLD_DOUBLE" column="FLD_DOUBLE" javaType="double" jdbcType="DOUBLE"/><result property="FLD_LONG" column="FLD_LONG" javaType="long" jdbcType="INTEGER"/><result property="FLD_CHAR" column="FLD_CHAR" javaType="string" jdbcType="CHAR"/><result property="FLD_BLOB" column="FLD_BLOB" javaType="[B" jdbcType="BLOB" /><result property="FLD_CLOB" column="FLD_CLOB" javaType="string" jdbcType="CLOB"/><result property="FLD_FLOAT" column="FLD_FLOAT" javaType="float" jdbcType="FLOAT"/><result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP" javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/> </resultMap>3 Mybatis中javaType和jdbcType对应关系JDBC Type Java TypeCHAR StringVARCHAR StringLONGVARCHAR StringNUMERIC java.math.BigDecimalDECIMAL java.math.BigDecimalBIT booleanBOOLEAN booleanTINYINT byteSMALLINT shortINTEGER intBIGINT longREAL floatFLOAT doubleDOUBLE doubleBINARY byte[]VARBINARY byte[]LONGVARBINARY byte[]DATE java.sql.DateTIME java.sql.TimeTIMESTAMP java.sql.TimestampCLOB ClobBLOB BlobARRAY ArrayDISTINCT mapping of underlying typeSTRUCT StructREF RefDATALINK .URL[color=red][/color]4 oracle数据类型和对应的java类型⽤mybatis generator⽣成代码后,执⾏查询语句时,oracle⾥的Date类型字段只精确到年⽉⽇,后⾯时分秒都为零。
java实现类SQL的join操作
![java实现类SQL的join操作](https://img.taocdn.com/s3/m/f2374c1ff08583d049649b6648d7c1c708a10b5e.png)
java实现类SQL的join操作SQL是结构化查询语⾔的简称,给数据库操作带来很⼤的⽅便。
随着⼤数据的流⾏,hive、spark、flink都开始⽀持SQL的操作。
但在java内部并没有对SQL操作的⽀持,使⽤java stream API进⾏数据关联操作的代码惨不忍睹。
因此,我基于Google guava的Table,封装了常⽤的join操作。
分享并记录在这⾥。
⽬前⽀持的join类型包括如下⼏类,基本上常见的join都已经覆盖到了。
public enum JoinStrategy {INNER_JOIN,//内连接LEFT_JOIN,//左连接RIGHT_JOIN,//右连接LEFT_SEMI_JOIN,//左半连接,结果只取左表,连接条件是左表和右表的交集LEFT_ANTI_JOIN,//左半连接,结果只取左表,连接条件是左表与右表的差集FULL_JOIN;//全连接}闲⾔少叙,下⾯就是JoinUtils的硬代码⼀、构造Table对象由于⼤部分⼈拿到的数据要么并不是Table类型,所以我⾸先提供了从这两个对象转Table对象的⽅法由于从jdbc查出来的数据,默认格式就是⼀个List<Map<>>,下⾯这个createTable⽅法可以将List<Map<>>⽣成⼀个Table对象因为我们后⾯要进⾏join操作,所以需要提供⼀个id作为每⼀⾏的rowKey./*** 基于List<Map>创建⼀个表对象,将使⽤⽤户提供的id的在map中对应的value值作为rowKey** @param listMap* @param id* @param <R>* @param <C>* @param <V>* @return*/public static <R, C, V> Table<R, C, V> createTable(List<Map<C, V>> listMap, R id) {Table<R, C, V> table = HashBasedTable.create();for (Map<C, V> map : listMap) {for (Map.Entry<C, V> entry : map.entrySet()) {table.put((R) map.get(id), entry.getKey(), entry.getValue());}}return table;}有些情况下,我们的数据并不是List<Map<>>,⽽是别⼈给我们传递的⼀组对象,这个情况我也考虑到了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LONG
java.sql.Types.LONGVARCHAR
ng.String
oracle.sql.CHAR
NUMBER
java.sql.Types.NUMERIC
java.math.BigDecimal
oracle.sql.NUMBER
NUMBER
java.sql.Types.DECIMAL
byte[]
oracle.sql.RAW
LONGRAW
java.sql.Types.LONGVARBINARY
byte[]
oracle.sql.RAW
DATE
java.sql.Types.DATE
java.sql.Date
oracle.sql.DATE
DATE
java.sql.Types.TIME
java.sql.Time
oracle.sql.TIMESTAMP
TIMESTAMP WITH TIME ZONE
oracle.jdbc.OracleTypes.TIMESTAMPTZ
java.sql.Timestamp
oracle.sql.TIMESTAMPTZ
TIMESTAMP WITH LOCAL TIME ZONE
oracle.jdbc.OracleTypes.TIMESTAMPLTZ
SQL数据类型
JDBC类型代码
标准的Java类型
Oracle扩展的Java类型
1.0标准的JDBC类型:
CHAR
java.sql.Types.CHAR
ng.String
oracle.sql.CHAR
VARCHAR2
java.sql.Types.VARCHAR
ng.String
CLOB
java.sql.Types.CLOB
java.sql.Clob
oracle.sql.CLOB
用户定义的对象
java.sql.Types.STRUCT
java.sql.Struct
oracle.sql.STRUCT
用户定义的参考
java.sql.Types.REF
java.sql.Ref
oracle.sql.REF
short
oracle.sql.NUMBER
NUMBER
java.sql.Types.INTEGER
int
oracle.sql.NUMBER
NUMBER
java.sql.Types.BIGINT
long
oracle.sql.NUMBER
NUMBER
java.sql.Types.REAL
float
oracle.sql.NUMBER
用户定义的集合
java.sql.Types.ARRAY
java.sql.Array
oracle.sql.ARRAY
Oracle扩展:
BFILE
oracle.jdbc.OracleTypes.BFILE
N/A
oracle.sql.BFILE
ROWID
oracle.jdbc.OracleTypes.ROWID
oracle.sql.DATE
TIMESTAMP
java.sql.Types.TIMESTAMP
javal.sql.Timestamp
oracle.sql.TIMESTAMP
2.0标准的JDBC类型:
BLOB
java.sql.Types.BLOB
java.sql.Blob
oracle.sql.BLOB
java.sql.Timestamp
oracle.sql.TIMESTAMPLTZ
NUMBER
java.sql.Types.FLOAT
double
oracle.sql.NUMBER
NUMBER
java.sql.Types.DOUBLE
double
oracle.sql.NUMBER
RAW
java.sql.Types.BINARY
byte[]
oracle.sql.RAW
RAW
java.sql.Types.VARBINARY
N/A
oracle.sql.ROWID
REF CURSOR
oracle.jdbc.OracleTypes.CURSOR
java.sql.ResultSet
oracle.jdbc.OracleResultSet
TIMESTAMP
oracle.jdbc.OracleTypes.TIMESTAMP
java.sql.Timestamp
java.math.BigDecimal
oracle.sql.NUMBER
NUMBER
java.sql.Types.BIT
boolean
oracle.sql.NUMBER
NUMBER
java.sql.Types.TINห้องสมุดไป่ตู้INT
byte
oracle.sql.NUMBER
NUMBER
java.sql.Types.SMALLINT