ホームページ  >  記事  >  Java  >  Java は SQL ステートメントを生成します

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

巴扎黑
巴扎黑オリジナル
2017-07-18 15:47:162533ブラウズ

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

 /** * 动态生成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 までご連絡ください。