入力チェックについてです。
現在作っているプログラムで、
バックエンド(java)
バックエンド(pl/sql)
の二つで同じ入力チェックを行っているのですが、
どちらもバックエンドの入力チェックじゃないですか。
そこで疑問が生まれました。
フロントエンドとバックエンドで2つ入力チェックをするのはjsが効かない場合を想定して実装します。
でもjava側とpl/sql側両方で入力チェックをするのは何か合理的な意味があるのでしょうか?それとも無駄な処理でどちらかの入力チェックを外してもいいのでしょうか?よろしくお願いします。
やってる処理は
1.画面でcsvを指定。
2.java側で入力チェック後、プロシージャ呼び出し
3.プロシージャ側で入力チェック後、データ登録
って感じです。
javaとプロシージャのソースの一部を以下に抜粋
java
1private void doUpload(){ 2 // 取り込みファイル 3 FormFile localFile = testForm.getFiles(); 4 5 // ファイルの行単位チェック 6 BufferedReader checkBr = new BufferedReader(new InputStreamReader(localFile.getInputStream(),rcvFileEncoding)); 7 String checkLine = null; 8 9 long rowCount = 0; 10 while ((checkLine = checkBr.readLine()) != null) { 11 rowCount++; 12 // ファイル行のレングスチェック 13 if(checkLine.getBytes(rcvFileEncoding).length != 128){ 14 errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.file.format",rowCount)); 15 log.debug("RecodeSizeError"); 16 return; 17 } 18}
plsql
1-- ファイルオープン 2vHandle := UTL_FILE.FOPEN(vFilePath, PRM_I_06, 'r'); 3LOOP 4 BEGIN 5 6 -- ファイルを1行読み込み 7 UTL_FILE.GET_LINE(vHandle, vReadLine); 8 9 -- 書き込み行数を加算 10 nLineCnt := nLineCnt+1; 11 12 -- データ長チェック 13 IF LENGTHB(vReadLine) != 128 THEN 14 GOTO err_hand; 15 END IF; 16
回答3件
あなたの回答
tips
プレビュー