当前位置: 首页 > news >正文

MySQL数据类型与Java数据类型的映射

整数类型
  • tinyint

    • 示例:假设is_activetinyint(1)用于表示布尔值。
      boolean is_active = rs.getboolean("is_active");
    • 或者作为字节值:
      byte value = rs.getbyte("column_name");
  • smallint

    • 示例:
      short small_value = rs.getshort("small_value");
  • int, integer

    • 示例:
      int int_value = rs.getint("int_value");
  • bigint

    • 示例:
      long big_value = rs.getlong("big_value");
浮点和固定点数字
  • float

    • 示例:
      float float_value = rs.getfloat("float_value");
  • double, double precision

    • 示例:
      double double_value = rs.getdouble("double_value");
  • decimal, numeric

    • 示例:保持高精度计算:
      bigdecimal decimal_value = rs.getbigdecimal("decimal_value");
字符串
  • char, varchar

    • 示例:
      string string_value = rs.getstring("string_value");
  • text, tinytext, mediumtext, longtext

    • 示例:
      string large_text = rs.getstring("large_text");
日期和时间
  • date

    • 示例:使用java 8的localdate
      localdate date = rs.getobject("date_column", localdate.class);
  • time

    • 示例:使用java 8的localtime
      localtime time = rs.getobject("time_column", localtime.class);
  • datetime, timestamp

    • 示例:使用java 8的localdatetime
      localdatetime datetime = rs.getobject("datetime_column", localdatetime.class);
二进制数据
  • blob, tinyblob, mediumblob, longblob
    • 示例:获取为字节数组:
      byte[] blob_data = rs.getbytes("blob_column");
    • 或者使用inputstream
      inputstream blob_stream = rs.getbinarystream("blob_column");
其他类型
  • bit

    • 示例:对于单个位值:
      boolean bit_value = rs.getboolean("bit_column");
    • 对于多个位:
      byte[] bits = rs.getbytes("bits_column");
  • enum

    • 示例:通常映射为字符串:
      string enum_value = rs.getstring("enum_column");
  • set

    • 示例:同样映射为字符串,然后解析:
      string set_values = rs.getstring("set_column");

处理null值

在从数据库读取可能包含null值的数据时,应该特别小心。例如:

integer nullable_int = rs.wasnull() ? null : rs.getint("nullable_int_column");

这确保了当数据库中的值为null时,java对象也会被设置为null,而不是默认值。

注意事项

  • 时区问题:处理timestampdatetime类型时,注意时区的影响。可以考虑使用zoneddatetime来处理不同地区的时区差异。
  • 精度丢失:对于需要精确计算的情况(如货币),避免使用浮点类型,而是使用bigdecimal
  • 性能优化:当处理大量数据时,适当选择流式处理或其他优化手段以提高效率。例如,使用批量更新或批处理插入操作来减少数据库交互次数。

相关文章:

  • 手撕LLM(一):从源码出发,探索LLM推理全流程
  • JJJ:generic netlink例程分析
  • 怎么计算感受野? 怎么增加感受野?
  • 数据仓库:规范
  • RTDETR融合[CVPR2025]DnLUT中的MuLUTUnit模块
  • QGIS获取建筑矢量图-Able Software R2V
  • 电脑如何使用事件查看器查看系统、程序异常信息并处理?
  • 一:基础课程
  • Docker设置代理
  • P1182 数列分段 Section II(二分)
  • T113s3远程部署Qt应用(dropbear)
  • 【家政平台开发(18)】缓存机制设计
  • 基于Python网络爬虫的智能音乐可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【MATLAB例程】交互式多模型(IMM),模型使用:CV,CT左转、CT右转,二维平面,三个模型的IMM,滤波使用EKF,附下载链接
  • 编程题学习
  • SSE Emitter在Spring Boot和Vue中的简单使用
  • 青少年编程与数学 02-016 Python数据结构与算法 01课题、算法
  • 计算机网络 3-1 数据链路层(功能+组帧+差错控制)
  • 请问你怎么看代软件测试的潜力和挑战?
  • Kafka 漏消费和重复消费问题