17.7.1 ParameterMetaDataインタフェース
(1) 概要
ParameterMetaDataインタフェースでは,PreparedStatementインタフェースの各パラメタに対するメタ情報を返す機能が提供されます。
(2) メソッド
ParameterMetaDataインタフェースのメソッド一覧を次の表に示します。なお,表に記載されていないメソッドはサポートしていません。サポートしていないメソッドを指定すると,SQLExceptionを投入します。
メソッド |
提供ドライバ |
機能 |
||
---|---|---|---|---|
JDBC2.0 |
JDBC4.0 |
JDBC4.3 |
||
× |
○ |
○ |
PreparedStatementオブジェクトのパラメタ数を返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列に対して,null値が許可されているかどうかを返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列のデータ型が符号付き数値かどうかを返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列のサイズを返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列の小数点以下のけた数を返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列のSQLデータ型を返します。 |
|
× |
○ |
○ |
指定されたパラメタに対応する列のデータベース固有の形名を返します。 |
|
× |
○ |
○ |
指定されたパラメタをPreparedStatement.setObjectで設定する場合に適用される,Javaクラスの完全指定された名前を返します。 |
|
× |
○ |
○ |
指定されたパラメタのモードを返します。 |
- (凡例)
-
○:提供されます。
×:提供されません。
(a) getParameterCount()
- 【機能】
-
PreparedStatementオブジェクトのパラメタ数を返します。
- 【形式】
public int getParameterCount() throws SQLException
- 【引数】
-
なし。
- 【戻り値】
-
- int型:
-
パラメタ数
- 【発生する例外】
-
なし。
(b) isNullable(int param)
- 【機能】
-
指定されたパラメタに対応する列に対して,null値が許可されているかどうかを返します。
- 【形式】
public int isNullable(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- int型:
-
-
ParameterMetaData.parameterNullable:null値が許可されています。
-
ParameterMetaData.parameterNoNulls:null値が許可されていません。
-
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(c) isSigned(int param)
- 【機能】
-
指定されたパラメタに対応する列のデータ型が符号付き数値かどうかを返します。
- 【形式】
public boolean isSigned(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- boolean型:
-
-
true:データ型が符号付き数値です。
-
false:データ型が符号付き数値ではありません。
-
- 【機能詳細】
-
指定されたパラメタのデータ型が符号付き数値かどうかを返します。列のHiRDBのデータ型と返す値について次の表に示します。
表17‒84 列のHiRDBのデータ型と返す値(isSignedメソッド) 列のHiRDBのデータ型
返す値
INTEGER,SMALLINT,FLOAT,DOUBLE PRECISION,REAL,SMALLFLT,DECIMAL,NUMERIC
true
上記以外の型
false
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(d) getPrecision(int param)
- 【機能】
-
指定されたパラメタに対応する列のサイズを返します。
- 【形式】
publc int getPrecision(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- int型:
-
パラメタに対応する列のサイズ
- 【機能詳細】
-
指定されたパラメタに対応する列のサイズを返します。列のHiRDBのデータ型と返す値について,次の表に示します。
表17‒85 列のHiRDBのデータ型と返す値(getPrecisionメソッド) 列のHiRDBのデータ型
返す値
返却値の単位
BLOB(n),BINARY(n)
n
バイト数
INTEGER
10
10進けた数
SMALLINT
5
FLOAT,DOUBLE PRECISION
15
SMALLFLT,REAL
7
DECIMAL(n,m),NUMERIC(n,m)
n
CHAR(n),MCHAR(n),VARCHAR(n),MVARCHAR(n)
n
文字数
NCHAR(n),NVARCHAR(n)
n
DATE
10
TIME
8
TIMESTAMP(n)
n>0の場合:19+(n+1)
n=0の場合:19
ANY
0
−
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(e) getScale(int param)
- 【機能】
-
指定されたパラメタに対応する列の小数点以下のけた数を返します。
- 【形式】
public int getScale(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- int型:
-
パラメタに対応する列の小数点以下のけた数
- 【機能詳細】
-
指定された列の小数点以下のけた数を返します。列のHiRDBのデータ型と返す値について次の表に示します。
表17‒86 列のHiRDBのデータ型と返す値(getScaleメソッド) 列のHiRDBのデータ型
返す値
DECIMAL,NUMERIC
小数点以下のけた数
TIMESTAMP
ミリ秒以下のけた数
上記以外
0
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(f) getParameterType(int param)
- 【機能】
-
指定されたパラメタに対応する列のSQLデータ型を返します。
- 【形式】
public int getParameterType(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- int型:
-
java.sql.TypesクラスからのSQL型
- 【機能詳細】
-
指定したパラメタに対応する列のSQLデータ型を返します。SQLデータ型と返す値の対応については,「データ型」を参照してください。
ただし,繰返し列の場合はjava.sql.Types.Arrayを返します。
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(g) getParameterTypeName(int param)
- 【機能】
-
指定されたパラメタに対応する列のデータベース固有の形名を返します。
- 【形式】
public String getParameterTypeName(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
Stringオブジェクト
- 【機能詳細】
-
指定されたパラメタに対応する列のデータベース固有の形名を返します。列のHiRDBのデータ型と返却する文字列について次の表に示します。
表17‒87 列のHiRDBのデータ型と返却する文字列(getParameterTypeNameメソッド) 列のHiRDBのデータ型
返却する文字列
BLOB
"BLOB"
BINARY
"BINARY"
INTEGER
"INTEGER"
SMALLINT
"SMALLINT"
FLOAT,DOUBLE PRECISION
"FLOAT"
SMALLFLT,REAL
"REAL"
DECIMAL,NUMERIC
"DECIMAL"
CHAR
"CHAR"
MCHAR
"MCHAR"
NCHAR
"NCHAR"
VARCHAR
"VARCHAR"
MVARCHAR
"MVARCHAR"
NVARCHAR
"NVARCHAR"
DATE
"DATE"
TIME
"TIME"
TIMESTAMP
"TIMESTAMP"
ANY
"ANY"
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(h) getParameterClassName(int param)
- 【機能】
-
指定されたパラメタをPreparedStatement.setObjectで設定する場合に適用される,Javaクラスの完全指定された名前を返します。
- 【形式】
public String getParameterClassName(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
Stringオブジェクト
- 【機能詳細】
-
パラメタをPreparedStatement.setObjectで設定する場合に適用される,Javaクラスの完全指定された名前をString型で返します。setObjectに渡せるオブジェクトの型は複数存在するため,代表的と考えられるもの(推奨する型があるものはその型)を返します。
列のHiRDBのデータ型と返却する文字列について次の表に示します。ただし,繰返し列の場合は"java.sql.Array"を返却します。
表17‒88 列のHiRDBのデータ型と返却する文字列(getParameterClassNameメソッド) 列のHiRDBのデータ型
返却する文字列
BLOB
"java.sql.Blob"
BINARY
"java.sql.Blob"
INTEGER
"java.lang.Integer"
SMALLINT
"java.lang.Integer"
FLOAT,DOUBLE PRECISION
"java.lang.Double"
SMALLFLT,REAL
"java.lang.Float"
DECIMAL,NUMERIC
"java.math.BigDecimal"
CHAR
"java.lang.String"
MCHAR
"java.lang.String"
NCHAR
"java.lang.String"
VARCHAR
"java.lang.String"
MVARCHAR
"java.lang.String"
NVARCHAR
"java.lang.String"
DATE
"java.sql.Date"
TIME
"java.sql.Time"
TIMESTAMP
"java.sql.Timestamp"
ANY
"java.lang.Object"
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。
(i) getParameterMode(int param)
- 【機能】
-
指定されたパラメタのモードを返します。
- 【形式】
public int getParameterMode(int param) throws SQLException
- 【引数】
-
- int param:
-
1から始まるパラメタ番号
- 【戻り値】
-
- int型:
-
-
ParameterMetaData.parameterModeIn:パラメタのモードがINです。
-
ParameterMetaData.parameterModeOut:パラメタのモードがOUTです。
-
ParameterMetaData.parameterModeInOut:パラメタのモードがINOUTです。
-
- 【発生する例外】
-
paramに指定された値が0以下,又はパラメタ数より大きい場合,メッセージKFPJ20413-EでSQLExceptionを投入します。