前言
MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String。 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型。 (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。
Java基础类型与包装类型
a) 如果数据库字段是允许为空的,使用包装类。 如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。 然后你就可以对异常进行捕获并处理。
b) 使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。 有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果。 总结:在项目中去使用包装类型而不是基本数据类型,这样可以使你编写代码更简单
ResultSet.getObject() 对 MySql 类型和 Java 类型转换表
Mysql字段类型
decimal(8,2): 有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数) decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。
字符串型: 定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快。 如果长度变化不大,最好选择CHAR类型。对于长度不确定的,最好选择VARCHAR。