org.opengion.plugin.column
クラス DBType_NVAR
java.lang.Object
org.opengion.plugin.column.AbstractDBType
org.opengion.plugin.column.DBType_NVAR
- すべての実装されたインタフェース:
- DBType
public class DBType_NVAR
- extends AbstractDBType
Unicode文字列の値を HTML のエスケープ記号(&#xZZZZ;)に変換する、カラム属性を定義します。
SJIS(JA16SJIS) で作成されたデータベースに、(NVARCHAR2)を使用して中国語等を登録するのは
非常に複雑でかつ、リスクが大きい処理になります。
ORACLE殿でも、自信を持っては勧められない機能とのコメントを頂いています。
そこで、HTMLでのエスケープ文字を使用して、Unicodeを文字列化して登録する為の
DBType として、新規に作成します。
ここでは、入力文字を、キャラクタ(char)型に分解し、(&#xZZZZ;)に変換していきます。
よって、通常に1文字(Shift-JISで2Byte,UTF-8で3Byte)が、8Byteになります。
この変換された文字列を、HTML上でそのまま取り出すと、元のUnicode文字に戻る為、
通常のShift-JISでは、扱えない文字(中国語など)でも表示可能になります。
(NVARCHAR2)を使用して中国語等を登録する場合の文字コード変換
APレイヤ ネットレイヤ DBレイヤ
文字入力 → 全てDBのCHARセットに変換 → NCHARの分だけUTFに変換
(UTF) (S-jis) (UTF)
タイプチェックは、HTMLのエスケープ記号(&#xZZZZ;)に変換後に実施されます。
データベースへの登録には、半角英数字になります。
・文字列長は、Byte換算での文字数との比較
・半角文字列チェック「 c < 0x20 || c > 0x7e 以外」エラー
・文字パラメータの 正規表現チェック
・クロスサイトスクリプティングチェック
- 機能階層
- データ属性
- 変更履歴:
3.8.0.0 (2005/06/07) 新規作成 |
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DBType_NVAR
public DBType_NVAR()
valueFill
public String valueFill(String value,
int sizeX,
int sizeY,
String encode)
- 半角0文字の固定長でFILL埋めされた文字列を返します。
なお、エラーチェックは行われません。
実行前に、必ず valueCheck( String value ,int len ) が行われる必要があります。
- 定義:
- インタフェース
DBType
内の valueFill
- オーバーライド:
- クラス
AbstractDBType
内の valueFill
- パラメータ:
value
- FILL埋めする文字列sizeX
- 整数部分の文字列の長さsizeY
- 少数部分の文字列の長さencode
- 固定長で変換する文字エンコード
- 戻り値:
- FILL埋めした新しい文字列
valueAdd
public String valueAdd(String value)
- String引数の文字列を+1した文字列を返します。
これは、英字の場合(A,B,C など)は、B,C,D のように,最終桁の文字コードを
+1 します。
文字列が数字タイプの場合は, 数字に変換して、+1 します。(桁上がりもあり)
混在タイプの場合は,最後の桁だけを確認して +1します。
引数が null の場合と、ゼロ文字列("")の場合は,物理的初期設定値(String getDefault())
の値を返します。
- 定義:
- インタフェース
DBType
内の valueAdd
- オーバーライド:
- クラス
AbstractDBType
内の valueAdd
- パラメータ:
value
- String
- 戻り値:
- String引数の文字列を+1した文字列
valueSet
public String valueSet(String value)
- エディターで編集されたデータを登録する場合に、データそのものを
変換して、実登録データを作成します。
例えば,大文字のみのフィールドなら、大文字化します。
実登録データの作成は、DBType オブジェクトを利用しますので,
これと Editor とがアンマッチの場合は、うまくデータ変換
されない可能性がありますので、注意願います。
- 定義:
- インタフェース
DBType
内の valueSet
- オーバーライド:
- クラス
AbstractDBType
内の valueSet
- パラメータ:
value
- String (一般に編集データとして登録されたデータ)
- 戻り値:
- 修正後の文字列(一般にデータベースに登録するデータ)
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.