1、数据类型:
java类型 | mysql类型 | 说明 |
---|---|---|
byte/short/int/long | tinyint/smallint/int/bigint | |
String | char/varchar | 区别? char是固定长度的字符串,varchar可变长度的字符串. char(8) 和 varchar(8) 如果插入一个字符串hello 插入到char 那么 插入hello .插入到varchar中 插入hello. |
float | float | |
double | double | |
boolean | bit | |
Date | date/time/datetime/timestamp | datetime和timestamp都是既有日期又有时间的日期类型 * 区别? datetime需要使用外部传入的日期.如果没传这个值就是Null. timestamp会使用系统当前的时间作为这个值的默认值 |
BigDecimal | decimal | 适合用于标记价格,自定义小数位 |
String | longtext | 大文本文件 |
java.lang.byte[] | BLOB | 二进制文件 |
对于blob类型,一般用于图片的数据库存储,原理把图片打成二进制方式,再存储到数据库中,对于的Java类型是byte[ ]数组
** MYSQL***中除了字符串类型需要设置长度其他的类型都有默认长度.**
2、数据库字段类型长度的一般设置
数据库长度设置,你就按照数字或者字符串的长度设置即可
比如:你想存储hello word! 11个字符 ,你可以设置varchar(x) x>11即可
一般设置:
tinyint(1)或者tingint(2)
int(11)
bigint(20)
varchar(32)或者varchar(255) 或者varchar(5000)
3、对Boolean类型的解释
mysql不支持bool类型。
create table xs (
id int primary key,
bl boolean
)
这样可以创建成功,但检查表结构会发现mysql把它替换成tinyint(1)。
即当把一个数据设置成bool类型的时候,数据库会自动转换成tinyint(1)的数据类型,其实这个就是变相的bool。 默认值也就是1,0两种,分别对应了bool的true和false
在Java对应的POJO类中,可以根据实际情况使用java.lang.Boolean或者java.lang.Integer。
4、Java数据类型长度范围
Java的基本数据类型详情:https://www.runoob.com/java/java-basic-datatypes.html
Java数据类型 | 位数 | 字节 | 数值范围 |
---|---|---|---|
byte | 8位 | 1 | -27~~~27-1 |
short | 16位 | 2 | -215~~~215-1 |
int | 32位 | 4 | -231~~~231-1 |
long | 64位 | 8 | -263~~~263-1 |
float | 32位 | 4 | |
double | 64位 | 8 | |
boolean | 1位 | true/false | |
char | 16位 | 2 |
1字节=8位