mysql 字段属性对应java的属性

本文详细探讨了Java内存模型的工作原理,包括主内存、工作内存以及它们之间的交互。重点讲解了 volatile、synchronized 和 Java内存屏障在多线程环境中的作用,帮助读者理解如何确保线程安全。此外,还介绍了Java并发工具类如 Lock 和 Atomic 对象的使用,以提升并发编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.csdn.net/java_2017_csdn/article/details/80910223

### MySQL字段类型与Java数据类型的映射 在开发基于Java的应用程序并与MySQL数据库交互时,理解两者间的数据类型映射至关重要。这不仅有助于提高编码效率,还能减少因类型不匹配引发的问题。 #### 基本数值类型映射 对于整数类别的映射如下: - `TINYINT` 对应Java 中的 `Byte` 或者 `byte` 类型[^1]。 - `SMALLINT` 映射至 `Short` 或 `short` [^1]。 - `INT`, 通常被映射成 `Integer` 或 `int` 。 - 更大范围的整数则由 `BIGINT` 表达,在Java里推荐使用 `Long` 或 `long` 来表示以覆盖其全部取值区间。 浮点数方面有: - `FLOAT` 和 `DOUBLE` 分别对应Java 的 `Float` 及 `Double` 数据类型。 布尔逻辑值通过以下方式处理: - `BOOLEAN` 被认为是 `Boolean` (注意大小写敏感),尽管实际上 MySQL 存储的是 TINYINT(1)[^2]。 字符序列可以按需选用不同的容器: - 单个字符适用 `Char`;字符串常量或变量长度较短的文字串适合采用 `String` 进行封装; - 针对可变长文本内容,则建议利用 `VARCHAR` 并将其关联到 Java 的 `String` 上[^3]。 日期时间戳管理上存在多种选择: - `DATE` 应该映射给 java.util.Date 或者 LocalDate(如果应用 JDK8+ 特性)[^4]。 - 时间单位单独记录可用 `Time` ,它同样继承自 java.sql.Time。 - 组合形式的时间标记如 `DATETIME` / `TIMESTAMP` 宜选取 Timestamp 或 LocalDateTime 结构来承载。 二进制大数据集支持: - 大对象存储可通过 BLOB/CLOB 实现,分别对应于 byte[]/InputStream (BLOB),以及 String/Reader (CLOB)。这些结构允许高效读取和保存大量非结构化资料。 精确度高的算术运算需求场合下: - 当涉及到高精度计算场景时,应当考虑将 DECIMAL/FIXED 类型映射为 BigDecimal,从而确保不会丢失任何有效位数。 ```java // 示例代码片段展示部分常见的类型转换方法 public class TypeMappingExample { public static void main(String args[]) throws SQLException{ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { // 获取连接... // 创建PreparedStatement并执行查询语句... while(rs.next()){ Byte tinyIntValue = rs.getByte("tiny_int_column"); Short smallintValue = rs.getShort("smallint_column"); Integer intValue = rs.getInt("int_column"); Long bigIntValue = rs.getLong("bigint_column"); Float floatValue = rs.getFloat("float_column"); Double doubleValue = rs.getDouble("double_column"); Boolean booleanValue = rs.getBoolean("boolean_column"); String charValue = Character.toString(rs.getString("char_column").charAt(0)); String stringValue = rs.getString("varchar_column"); Date dateValue = rs.getDate("date_column"); Time timeValue = rs.getTime("time_column"); Timestamp timestampValue = rs.getTimestamp("datetime_column"); InputStream blobStream = rs.getBinaryStream("blob_column"); Reader clobReader = rs.getCharacterStream("clob_column"); BigDecimal decimalValue = rs.getBigDecimal("decimal_column"); System.out.println(tinyIntValue); // 打印其他获取的结果... } } finally { if(conn != null && !conn.isClosed()) { /* 关闭资源 */ } if(pstmt != null) {/* ... */} if(rs != null) {/* ... */} } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值