| 主题:jdbc 日期时间相关的类型 |
|---|
|
1、sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集。它只处理年月日,而忽略小时和分秒,用以代表SQL的DATE信息。 Date类的构造方法为: public Date(int year, int mouth, int day) 其中参数格式同util.Date类的构造方法一样,年参数为所需设定的年份减去1900所得的整数值,月参数为0至11,日参数为1至31。如1998年1月23日所对应创建日期类的方法调用为: Date d=new Date(98,0,23); Date类还提供两个与String类互相转换的方法,分别是: public static Date valueOf(String s) 将字符串类参数转换为日期类对象。其中String类参数S的格式为“年-月-日”,加“1997-04-12”。 public String toString() 将日期类对象转换为String类对象表示,同样采用“年-月-日”的格式。 2、sql.Time 该类是util.Date类的子类,也是它的一个子集。在Time类里,只处理小时和分秒,代表SQL的TIME类型。它与sql.Date合起来才表示完整的util.Date类信息。 Time类的构造方法为: public Time(int hour,int minute,int second) 其中小时参数值为0至23,分秒参数取值均为0至59。 与sql.Date一样,Time类也定义了两个与String类互相转换的函数ValueOf和String。不同的是String类对象的格式为“小时:分:秒”,如“12:26:06”。 3、sql.Timestamp 这个类也是util.Date类的子类,其中除了包含年月日、小时和分秒和信息之外,还加入了纳秒信息(nanosecond),1纳秒即1毫微秒。Timestamp类用来代表SQL时间戳(Timestamp)类型信息。 Timestamp类的构造方法为: public Timestamp(int year, int mouth, int date, int hour, int minute, int second, int nano)其中纳秒参数的取值从0至999,999,999,其余各参数同前。 Timestamp类特别定义了设置和获得纳秒信息的方法,分别是 public getnanos() 获取时间戳的纳秒部分 public void setNanos(int n) 以给定数值设置时间戳的纳秒部分 4、sql.Types Types类是Object类的直接子类。在这个类中以静态常量的形式定义了可使用的SQL的数值类型。所有这些类型常量都以前缀 public final static int 的形式标明是公有静态整数,且不可改动。具体的类型名和含义如表11.1所示。其中OTHER用来代表数据库定义的特殊数据,可以用getObject或setObject方法将其映射为一个Java的Object对象。 表11.1 Types中定义的SQL类型
SQL与Java 由于SQL数据类型与Java的数据类型不一致,因而在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制。实际上我们前面介绍的ResultSet类的“get”系列方法,Statement及其子类的“set“系列方法和registerOutParameter方法,都是这一转换机制的组成部分。 需要进行的读写转换包括三种情况: 第一种情况是从数据库中读取数值后,存放在ResultSet对象中的是SQL类型的数据。而调用“get”系列方法时,JDBC才将SQL类型转换为指定的Java类型 。在一般情形下,SQL类型相对应的Java类型如表11-2所示。 表11.2 SQL类型一般所对应的Java类型
当然,在使用时用户可以指定将SQL类型转换为某个需要的特定类型而不遵循表11.2。例如在结果集中的某个FLOAT型数值,依标准转换应用使用getDouble方法获取,但实际上按用户的不同需求也可以使用getFloat,getInt,甚至gefByte方法获取,但只是有可能影响数值精确度。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ★★★★★★★★ 纵里寻她千百度,蓦然回首,那人却在,灯火阑珊处! MyBlog :http://blog.javawind.net |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
粤ICP备07511478号