数据类型扩展
DM JDBC 驱动程序为了支持 DM 特有的数据类型,采用了自定义扩展包的方式来进行
解决。DM.sql 这个包中包含了 DM 特有数据类型所对应的类。时间间隔类型是 DM 具有的
数 据 类 型 , JDBC 标 准 中 没 有 相 对 应 的 类 型 。 故 令 dm.sql.DmdbIntervalYM 和
dm.sql.DmdbIntervalDT 分别对应于 年 -月间 隔类型和日 -时间隔类型 。JDBC 标准中 的
java.sql.Types.Time 类型不允许带有纳秒,为了表示 DM 中带纳秒的时间类型,设立了
dm.sql.DmdbTime 类型。这些类型的主要方法为:
1. Dm.sql.DmdbIntervalDT
方法名 |
功能说明 |
DmdbIntervalDT(byte[]) |
利用字节数组作为参数的构造函数。 |
DmdbIntervalDT(byte[],int,int) |
利用字节数组,指定引导精度、纳秒精度构造函数。 |
DmdbIntervalDT(String) |
利用字符串作为参数的构造函数。 |
DmdbIntervalDT(String,int,int) |
设置字符串,指定引导精度、纳秒精度构造函数。 |
getByteArrayValue() |
获取字节数组。 |
getDTString() |
把 DmdbIntervalDT 的值以字符串的形式返回。 |
getDTType() |
获取 DmdbIntervalDT 值类型。 |
getDay() |
获取 DmdbIntervalDT 值中日值。 |
getHour() |
获取 DmdbIntervalDT 值中时值。 |
getMinute() |
获取 DmdbIntervalDT 值中分值。 |
getSecond() |
获取 DmdbIntervalDT 值中秒值。 |
getNano() |
获取 DmdbIntervalDT 值中纳秒值。 |
getLoadPrec() |
获取 DmdbIntervalDT 值中引导精度数。 |
getSecPrec() |
获取 DmdbIntervalDT 值中纳秒精度数。 |
clear() |
清除 DmdbIntervalDT 值。 |
2. Dm.sql.DmdbIntervalYM
方法名 |
功能说明 |
DmdbIntervalYM (byte[]) |
利用字节数组作为参数的构造函数。 |
DmdbIntervalYM (byte[],int) |
利用字节数组、精度作为参数构造函数,精度默认为 0。 |
DmdbIntervalYM (String) |
利用字符串作为参数的构造函数。 |
DmdbIntervalYM (String,int) |
利用字符串、精度作为参数的构造函数,精度默认为 0。 |
getByteArrayValue() |
把 DmdbIntervalYM 的值以字节数组的形式返回。 |
getYMString() |
把 DmdbIntervalYM 的值以字符串的形式返回。 |
getYMType() |
获取 DmdbIntervalYM 值类型。 |
getYear() |
返回 DmdbIntervalYM 值中的年值。 |
getMonth() |
返回 DmdbIntervalYM 值中的月值。 |
getLoadPrec() |
获取 DmdbIntervalYM 的引导精度。 |
toString() |
把 DmdbIntervalYM 的值转化为字符串的形式。 |
clear() |
清除 DmdbIntervalYM 值信息。 |
3. Dm.sql.DmdbTimestamp
方法名 |
功能说明 |
valueOf(Date) |
根据指定的 java.util.Date 类型构造一个 DmdbTimestamp 类型 |
valueOf(String) |
根据指定的时间类型字符串构造一个 DmdbTimestamp 类型 |
getDt() |
返回一个此对象表示的时间值数组,内容为[年,月,日,时,分,秒,微秒,时区] |
getTime () |
返回此对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数 |
setTime(long) |
使用给定毫秒时间值设置现有 DmdbTimestamp 对象 |
getTimezone() |
获取 DmdbTimestamp 值中的时区值 |
setTimezone(int) |
设置此对象的时区 |
getNano() |
获取此对象的纳秒值 |
setNano(long) |
设置此对象的纳秒值 |
toString() |
把 DmdbTimestamp 的值转化为字符串的形式 |
4. 访问方式
为 了 能 够 在 DM JDBC 驱 动 程 序 中 访 问 这 些 特 有 的 数 据 类 型 , 我 们 在
DmdbPreparedStatement、DmdbCallableStatement 和 DmdbResultSet 类中增加了许多方法。客
户如果想使用这些方法,必须把对象强制转化为 DmdbXXX 类型:
PreparedStatement pstmt = connection.prepareStatement("insert into testInterval “ + “values(?)"); ((DmdbPreparedStatement)pstmt).setINTERVALYM(1, new DmdbIntervalYM("Interval '0015-08' year to month")); int updateCount = pstmt.executeUpdate();
其它方法的使用方式与此类同。而且,时间间隔类型可以利用 setString 和 getString 方
法进行存取,带纳秒的时间类型也可以当作普通的时间类型(不带纳秒)来进行操作。
评论