星空网 > 软件开发 > Java

JDBC数据类型

JDBC数据类型


JDBC驱动程序Java数据类型转换到适当的JDBC类型然后再将它发送到数据库。它使用默认的大多数数据类型映射。例如,一个Java int转换成一个SQL INTEGER。创建默认映射驱动器之间提供一致性。

下表总结了默认的JDBC数据类型的Java数据类型转换,当调用setXXX()方法的PreparedStatement或CallableStatement对象或ResultSet.updateXXX()方法。

SQLJDBC/JavasetXXXupdateXXX
VARCHARjava.lang.StringsetStringupdateString
CHARjava.lang.StringsetStringupdateString
LONGVARCHARjava.lang.StringsetStringupdateString
BITbooleansetBooleanupdateBoolean
NUMERICjava.math.BigDecimalsetBigDecimalupdateBigDecimal
TINYINTbytesetByteupdateByte
SMALLINTshortsetShortupdateShort
INTEGERintsetIntupdateInt
BIGINTlongsetLongupdateLong
REALfloatsetFloatupdateFloat
FLOATfloatsetFloatupdateFloat
DOUBLEdoublesetDoubleupdateDouble
VARBINARYbyte[ ]setBytesupdateBytes
BINARYbyte[ ]setBytesupdateBytes
DATEjava.sql.DatesetDateupdateDate
TIMEjava.sql.TimesetTimeupdateTime
TIMESTAMPjava.sql.TimestampsetTimestampupdateTimestamp
CLOBjava.sql.ClobsetClobupdateClob
BLOBjava.sql.BlobsetBlobupdateBlob
ARRAYjava.sql.ArraysetARRAYupdateARRAY
REFjava.sql.RefSetRefupdateRef
STRUCTjava.sql.StructSetStructupdateStruct

JDBC3.0的增强支持BLOB,CLOB,ARRAY,REF数据类型。ResultSet对象现在有UPDATEBLOB(),updateCLOB(),updateArray()和updateRef()方法,使您可以在服务器上直接操作相应的数据。

setXXX()和updateXXX()方法,使您可以转换成特定的Java类型到特定的JDBC数据类型。setObject()和updateObject()方法,使您能够几乎所有的Java类型映射到JDBC数据类型。

ResultSet对象提供相应的getXXX()方法为每个数据类型来检索列值。每一种方法,可以使用与列名或由它的序号位置。

SQLJDBC/JavasetXXXgetXXX
VARCHARjava.lang.StringsetStringgetString
CHARjava.lang.StringsetStringgetString
LONGVARCHARjava.lang.StringsetStringgetString
BITbooleansetBooleangetBoolean
NUMERICjava.math.BigDecimalsetBigDecimalgetBigDecimal
TINYINTbytesetBytegetByte
SMALLINTshortsetShortgetShort
INTEGERintsetIntgetInt
BIGINTlongsetLonggetLong
REALfloatsetFloatgetFloat
FLOATfloatsetFloatgetFloat
DOUBLEdoublesetDoublegetDouble
VARBINARYbyte[ ]setBytesgetBytes
BINARYbyte[ ]setBytesgetBytes
DATEjava.sql.DatesetDategetDate
TIMEjava.sql.TimesetTimegetTime
TIMESTAMPjava.sql.TimestampsetTimestampgetTimestamp
CLOBjava.sql.ClobsetClobgetClob
BLOBjava.sql.BlobsetBlobgetBlob
ARRAYjava.sql.ArraysetARRAYgetARRAY
REFjava.sql.RefSetRefgetRef
STRUCTjava.sql.StructSetStructgetStruct

日期 & 时间数据类型:

java.sql.Date类映射到SQL DATE类型,并在java.sql.Time的java.sql.Timestamp类,分别映射到SQL和SQL TIMESTAMP数据类型。

以下示例显示了如何的格式的日期和时间类标准的Java日期和时间值相匹配的SQL数据类型需求。

import java.sql.Date;import java.sql.Time;import java.sql.Timestamp;import java.util.*;public class SqlDateTime {  public static void main(String[] args) {   //Get standard date and time   java.util.Date javaDate = new java.util.Date();   long javaTime = javaDate.getTime();   System.out.println("The Java Date is:" +       javaDate.toString());   //Get and display SQL DATE by www.yiibai.com   java.sql.Date sqlDate = new java.sql.Date(javaTime);   System.out.println("The SQL DATE is: " +       sqlDate.toString());   //Get and display SQL TIME   java.sql.Time sqlTime = new java.sql.Time(javaTime);   System.out.println("The SQL TIME is: " +       sqlTime.toString());   //Get and display SQL TIMESTAMP   java.sql.Timestamp sqlTimestamp =   new java.sql.Timestamp(javaTime);   System.out.println("The SQL TIMESTAMP is: " +       sqlTimestamp.toString());   }//end main}//end SqlDateTime

现在让我们来编译上面的例子如下:

C:\>javac SqlDateTime.javaC:\>

当你运行JDBCExample的,它会产生以下结果:

C:\>java SqlDateTimeThe Java Date is:Tue Aug 18 13:46:02 GMT+04:00 2009The SQL DATE is: 2009-08-18The SQL TIME is: 13:46:02The SQL TIMESTAMP is: 2009-08-18 13:46:02.828C:\>

处理NULL值:

SQL使用NULL值和Java的使用null是不同的概念。那么如何在Java中处理SQL NULL值呢?有三种方法可以使用:

  1. 避免使用getXXX()方法返回的原始数据类型。

  2. 使用原始数据类型的包装类,并使用ResultSet对象的wasNull()方法来测试的getXXX()方法返回的包装类变量的值是否应被设置为null。

  3. 使用原始数据类型和ResultSet对象的wasNull()方法来测试是否收到原始变量,返回的值的getXXX()方法将被设置为选择一个可接受的值代表一个NULL。

下面是一个例子来处理NULL值:

Statement stmt = conn.createStatement( );String sql = "SELECT id, first, last, age FROM Employees";ResultSet rs = stmt.executeQuery(sql);int id = rs.getInt(1);if( rs.wasNull( ) ) {  id = 0;}




原标题:JDBC数据类型

关键词:数据类型

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

必看系列 | 2023年电子商务6中可能趋势预测:https://www.kjdsnews.com/a/1304664.html
外贸独立站建站(国外独立网站如何建站):https://www.kjdsnews.com/a/1304665.html
欧盟13日起所有消费税交易将完全电子化!跨境电商早报:https://www.kjdsnews.com/a/1304666.html
外贸网站运营怎么做的(外贸网站建设推广怎么做):https://www.kjdsnews.com/a/1304667.html
DHL是不是快递行业的天花板?:https://www.kjdsnews.com/a/1304668.html
TikTok Shop如何避免违规发布商品?:https://www.kjdsnews.com/a/1304669.html
亚马逊掀起算法革命:A9已死 COSMO当立? :https://www.kjdsnews.com/a/1836493.html
2月新茶饮开店腰斩 加盟门槛一降再降 :https://www.kjdsnews.com/a/1836494.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流