ホームページ Java &#&チュートリアル Java は SQL ステートメントを生成します

Java は SQL ステートメントを生成します

Jul 18, 2017 pm 03:47 PM
java 動的 生成する

コードは次のとおりです:

 /** * 动态生成SQ及SQL参数L
         * @param ve 接收到的消息的CHGLIST
         * @param paramList MQ消息中的SQL参数
         * @param t 泛型对象
         * @param table 数据表
         * @param list 可执行SQL语句集合
         * @return */public <T> String updateSqlAndParamList(Vector<String> ve,List<String> paramList,T t,String table,List<String> list){
        String strSql="";//MQ消息SQlString upSql="";//可执行SQLtry {//组装SQL语句strSql = "update "+table+" set ";
            upSql="update "+table+" set ";for(int i = 0; i < ve.size(); i++){
                String str = "";
                String upStr="";
                String key = ve.get(i);
                String fileName="get"+key.toUpperCase();
                String value=(String)t.getClass().getMethod(fileName).invoke(t);
                paramList.add(i,value);if(i == ve.size()-1){
                    str = key+" = ?";
                    upStr=key+"='"+value+"'";
                }else{
                    str = key+" = ? ,";
                    upStr=key+"='"+value+"',";
                }
                strSql+=str;
                upSql += upStr;
            }
            strSql +=" where Id = ? ";
            upSql+=" where id='"+(String) t.getClass().getMethod("getID").invoke(t)+"'";
            list.add(upSql);
            paramList.add(ve.size(),(String) t.getClass().getMethod("getID").invoke(t));
        } catch (Exception e) {
            logger.info("组装UPDATE SQL失败!失败详情---"+e);
        }return strSql;
    }
ログイン後にコピー

1. 動的ステートメントを使用する

多くのデータベースでは、Oracle の EXECUTE IMMEDIATE ステートメント、MSSQL の EXEC および SP_EXECUTESQL、Mysql のプリペアド ステートメントなど、動的 SQL を処理するための構文が提供されています。これらの関数を使用すると、データベース側で動的クエリを処理でき、優れたトラバーサルが可能になります。ただし、この方法は比較的単純な動的クエリにのみ適しています。複雑な状況では、次の方法がよく使用されます。

2. ストアド プロシージャを使用する

複雑な状況では、通常、動的 SQL がストアド プロシージャに結合されます。ストアド プロシージャの使用は比較的柔軟ですが、コーディングが複雑になりすぎて、実行効率が低下する場合があります。

3. 他の (JAVA など) プログラムを使用する

他の外部高級言語 (JAVA など) を使用して結合し、実行のためにデータベースに渡すこともできます。柔軟性はありますが、JAVA には集合計算がサポートされていないため、これらの準備を完了するのは簡単ではありません。

動的 SQL を実行する必要がある主な制御プログラムが JAVA の場合、esProc を使用して動的 SQL 計算の完了を支援でき、動的 SQL を簡単に実行できるスクリプトです。 esProc は、Java アプリケーションとデータベースの間に配置できる JDBC インターフェイスを提供します。これにより、アプリケーションは、アプリケーション構造をほとんど変更することなく、あたかもデータベースにアクセスしているかのように esProc スクリプトを実行し続けることができます。

以下では例を使用して、esProc を使用して動的 SQL 計算を実行し、それらを JAVA プログラムに統合する方法を説明します。


以上がJava は SQL ステートメントを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Javaの平方根

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Javaの完全数

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーター

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

Javaのアームストロング数

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

ジャワのウェカ

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Javaのスミス番号

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

Java Springのインタビューの質問

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8 Stream Foreachから休憩または戻ってきますか?

See all articles