设为首页收藏本站
开启辅助访问

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索

MySQL数据类型和java数据类型对应关系及转换

2012-8-8 11:20| 发布者: cryinglily| 查看: 756| 评论: 0|原作者: luinstein

摘要: (摘自MySQL官网手册) 26.3.3.3. Java,JDBC和MySQL类型MySQL Connector/J在处理MySQL数据类型和Java数据类型的转换处理方面十分灵活。 尽管可能会出现舍入、溢出或精度损失,当在通常情况下,能够将任何MySQL数据 ...
(摘自MySQL官网手册)
26.3.3.3. Java,JDBC和MySQL类型MySQL Connector/J在处理MySQL数据类型和Java数据类型的转换处理方面十分灵活。
尽管可能会出现舍入、溢出或精度损失,当在通常情况下,能够将任何MySQL数据类型转换为java.lang.String,并能将任何数值类型转换为Java数值类型。
从Connector/J 3.1.0开始,按照JDBC规范的要求,JDBC驱动程序将发出警告或抛出DataTruncation异常,除非通过使用“jdbcCompliantTruncation”属性并将其设为“假”,对连接进行相应配置取消了前述要求。
在下面的表格中,列出能可靠工作的转换:
表26.2. 转换表


                                
下述MySQL数据类型
                                    
总能转换为下述Java类型
                    
                                        CHAR, VARCHAR, BLOB, TEXT, ENUM, and SET
                                    java.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
                    
                                FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINT
                                    java.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal
            注释:            与希望转换的MySQL数据类型相比,如果选择了精度较低的Java数值类型,可能会出现舍入、溢出或精度损失。
                    
                                DATE, TIME, DATETIME, TIMESTAMP
                                    java.lang.String, java.sql.Date, java.sql.Timestamp
                    在MySQL类型和Java类型之间,ResultSet.getObject()方法采用了下述类型转换方式,在可能的情况下遵从JDBC规范:

表26.3. 用于ResultSet.getObject()的MySQL类型和Java类型
                                    
MySQL类型名称
                                    
以Java类返回
                    
                                        BIT(1) (new in MySQL-5.0)
                                    java.lang.Boolean
                    
                                BIT( > 1) (new in MySQL-5.0)
                                    byte[]
                    
                                TINYINT
                                    java.lang.Boolean,如果将配置属性“tinyInt1isBit”设为“真”(默认值),并将存储大小设为“1”;或java.lang.Integer,如果不是的话。
                    
                                BOOL , BOOLEAN
                                    请参见上面的TINYINT,它们目前是TINYINT(1)的别名。
                    
                                SMALLINT[(M)] [UNSIGNED]
                                    java.lang.Integer(无论是否为UNSIGNED)
                    
                                MEDIUMINT[(M)] [UNSIGNED]
                                    java.lang.Integer(无论是否为UNSIGNED)
                    
                                INT,INTEGER[(M)] [UNSIGNED]
                                    java.lang.Integer,如果是UNSIGNED,java.lang.Long
                    
                                BIGINT[(M)] [UNSIGNED]
                                    java.lang.Long,如果是UNSIGNED,java.math.BigInteger
                    
                                FLOAT[(M,D)]
                                    java.lang.Float
                    
                                DOUBLE[(M,B)]
                                    java.lang.Double
                    
                                DECIMAL[(M[,D])]
                                    java.math.BigDecimal
                    
                                DATE
                                    java.sql.Date
                    
                                DATETIME
                                    java.sql.Timestamp
                    
                                TIMESTAMP[(M)]
                                    java.sql.Timestamp
                    
                                TIME
                                    java.sql.Time
                    
                                YEAR[(2|4)]
                                    java.sql.Date(日期设为2月1日晚上2点)
                    
                                CHAR(M)
                                    java.lang.String(除非列的字符集是BINARY),然后返回字节[]
                    
                                VARCHAR(M) [BINARY]
                                    java.lang.String(除非列的字符集是BINARY),然后返回字节[]
                    
                                BINARY(M)
                                    byte[]
                    
                                VARBINARY(M)
                                    byte[]
                    
                                TINYBLOB
                                    byte[]
                    
                                TINYTEXT
                                    java.lang.String
                    
                                BLOB
                                    byte[]
                    
                                TEXT
                                    java.lang.String
                    
                                MEDIUMBLOB
                                    byte[]
                    
                                MEDIUMTEXT
                                    java.lang.String
                    
                                LONGBLOB
                                    byte[]
                    
                                LONGTEXT
                                    java.lang.String
                    
                                ENUM('value1','value2',...)
                                    java.lang.String
                    
                                SET('value1','value2',...)
                                    java.lang.String

from:http://hi.baidu.com/melonfield/b ... 6c4c14a9d31132.html

鲜花

握手

雷人

路过

鸡蛋

相关分类

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2025-2-22 16:25 , Processed in 0.059925 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

返回顶部