MySQL字段类型对应Java字段
前言
MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String。 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型。 (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。
Java基础类型与包装类型
a) 如果数据库字段是允许为空的,使用包装类。 如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。 然后你就可以对异常进行捕获并处理。
b) 使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。 有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果。 总结:在项目中去使用包装类型而不是基本数据类型,这样可以使你编写代码更简单
ResultSet.getObject() 对 MySql 类型和 Java 类型转换表
MySql 类型名 | GetColumnClassName 返回值 | 返回的 Java 类 |
---|---|---|
bit(1) (MySQL-5.0) | BIT | java.lang.Boolean |
bit(大于1) (MySQL-5.0) | BIT | byte[] |
tinyint | TINYINT | 如果 tinyInt1isBit 配置设置为 true(默认为 true),是java.lang.Boolean,存储空间为 1;否则是为 java.lang.Integer |
bool boolean | TINYINT | 参见 TINYINT。这些是 TINYINT(1) 另一种写法 |
smallint(M) [unsigned] | SMALLINT [UNSIGNED] | java.lang.Integer(不管是否无符) |
mediumint(M) [unsigned] | MEDIUMINT [UNSIGNED] | java.lang.Integer |
int integer(M) [unsigned] | INTEGER [UNSIGNED] | java.lang.Integer;无符的话是 java.lang.Long |
bigint(M) [unsigned] | BIGINT [UNSIGNED] | java.lang.Long;无符的话是 java.math.BigInteger |
float(M,D) | FLOAT | java.lang.Float |
double(M,B) | DOUBLE | java.lang.Double |
decimal(M,D) | DECIMAL | java.math.BigDecimal |
date | DATE | java.sql.Date |
datetime | DATETIME | java.sql.Timestamp |
timestamp(M) | TIMESTAMP | java.sql.Timestamp |
time | TIME | java.sql.Time |
year(2/4) | YEAR | 如果 yearIsDateType 配置设置为 false,返回的对象类型为 java.sql.Short;如果设置为 true(默认为 true),返回的对象类型是 java.sql.Date,其具体时间是为一月一日零时零分 |
char(M) | CHAR | java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[]) |
varchar(M) [binary] | VARCHAR | java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[]) |
binary(M) | BINARY | byte[] |
varbinary(M) | VARBINARY | byte[] |
tinyblob | TINYBLOB | byte[] |
tinytext | VARCHAR | java.lang.String |
blob | BLOB | byte[] |
text | VARCHAR | java.lang.String |
mediumblob | MEDIUMBLOB | byte[] |
mediumtext | VARCHAR | java.lang.String |
longblob | LONGBLOB | byte[] |
longtext | VARCHAR | java.lang.String |
enum('value1','value2',...) | CHAR | java.lang.String |
set('value1','value2',...) | CHAR | java.lang.String |
Mysql字段类型
decimal(8,2): 有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数) decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。
字符串型: 定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快。 如果长度变化不大,最好选择CHAR类型。对于长度不确定的,最好选择VARCHAR。
MySQL字段类型对应Java字段相关推荐
- mysql字段类型对应java字段类型
数据库类型 JAVA类型 VARCHAR java.lang.String BLOB java.lang.byte[] TEXT java.lang.String INTEGER java.lang. ...
- Java JDBC中,MySQL字段类型到JAVA类型的转换
转载自:https://www.cnblogs.com/waterystone/p/6226356.html 1. 概述 在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该 ...
- MySQL字段类型与Java中类型的对应
MySQL字段类型与Java中类型的对应 在设计数据的时候,需要与Java里的类型进行匹配,我自己在设计过程中参考的内容如下 编号 类型名称 显示长度 数据库类型 Java类型 备注/描述 0 VAR ...
- MySQL字段类型到JAVA类型的对应及转换
1. 概述 在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案. 2. 类型映射 java.sql.Types定义了常 ...
- 总结java数据类型和mysql、oracle、pgsql数据类型对应关系,附数据库字段类型转java类型代码
java的基本数据类型有八种: byte.short.int.long.float.double.char.boolean 总结java和mysql.oracle.pgsql数据类型对应关系 java ...
- java中常见数据库字段类型与java.sql.Types的对应
转自:http://blog.csdn.net/hbzyaxiu520/article/details/5457225 常见数据库字段类型与java.sql.Types的对应 Oracle与java. ...
- java.sql.Types,数据库字段类型,java数据类型的对应关系
原文地址为: java.sql.Types,数据库字段类型,java数据类型的对应关系 以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增 ...
- Access中字段类型及修改字段类型的SQL语句
Access中字段类型及修改字段类型的SQL语句 Access中的数据类型 Access中有10中数据类型:文本.备注.数值.日期/时间.货币.自动编号.是/否.OLE对象.超级链接.查询向导. 1. ...
- oracle如何搜索字段类型,Oracle通过字段类型查询字段
有的时候我们需要在oracle中通过字段名.字段类型.字段长度.字段注释.表名来查询具体的字段信息.比如:昨天同事问我,咱们数 有的时候我们需要在Oracle中通过字段名.字段类型.字段长度.字段注释 ...
最新文章
- 工业相机之全局曝光与卷帘曝光
- thinkphp 微信授权登录 以及微信实现分享
- MMCME2_ADV介绍 高级混合模式时钟管理器(7 Series FPGA)
- 栈空间不够会报错吗_网站更换域名和空间会对优化有影响吗?
- STC12C5A60S2笔记8(串口)
- 转:WinForm程序中两份mdf文件问题的解决方法
- 【机器学习基础】优化算法详解
- 分享9个实用的电脑维修技巧,赶紧收藏吧!
- 简单聊聊模型的性能评估标准
- python 下载百度文库_百度文库随便下载,解除限制
- 【C#进阶3-7】C# Socket通讯
- JSP文件的打开方式
- 如何解决High Sierra 10.13.6 系统iCloud无法连接的问题?
- 中国品牌亮相第六届加拿大服装纺织品采购展
- 鼠标绘制工具加是否超出范围判断
- 网络安全运维工程师数据库的核心能力有什么?
- 订单里面有多个商品的问题怎么解决
- Win7-64 重装 Anaconda3
- 【转载】[学习笔记]共轭转置矩阵与伴随矩阵都用A*表示合理吗?
- stm32的抢占优先级和响应优先级(也叫子优先级)