クラス 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,
    • コンストラクタの詳細

      • DBType_NVAR

        public DBType_NVAR()
        デフォルトコンストラクター
        変更履歴:
        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
    • メソッドの詳細

      • valueFill

        public String valueFill​(String value,
                                int sizeX,
                                int sizeY,
                                String encode)
        半角0文字の固定長でFILL埋めされた文字列を返します。 なお、エラーチェックは行われません。 実行前に、必ず valueCheck( String value ,int len ) が行われる必要があります。
        定義:
        valueFill インタフェース内 DBType
        オーバーライド:
        valueFill クラス内 AbstractDBType
        パラメータ:
        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()) の値を返します。
        定義:
        valueAdd インタフェース内 DBType
        オーバーライド:
        valueAdd クラス内 AbstractDBType
        パラメータ:
        value - String引数の文字列
        戻り値:
        String引数の文字列を+1した文字列
      • valueSet

        public String valueSet​(String value)
        エディターで編集されたデータを登録する場合に、データそのものを 変換して、実登録データを作成します。 例えば,大文字のみのフィールドなら、大文字化します。 実登録データの作成は、DBType オブジェクトを利用しますので, これと Editor とがアンマッチの場合は、うまくデータ変換 されない可能性がありますので、注意願います。
        定義:
        valueSet インタフェース内 DBType
        オーバーライド:
        valueSet クラス内 AbstractDBType
        パラメータ:
        value - (一般に編集データとして登録されたデータ)
        戻り値:
        修正後の文字列(一般にデータベースに登録するデータ)