首頁  >  文章  >  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.使用動態語句

許多資料庫都提供了處理動態SQL的語法,如Oracle的EXECUTE IMMEDIATE語句、MSSQL的EXEC和SP_EXECUTESQL、Mysql的預處理語句等。這些功能讓我們在資料庫端來處理動態查詢提供了極大遍歷,但這種方式只適用於相對簡單地動態查詢,複雜的情況經常會採用下面的方式。

2、使用預存程序

對於複雜的情況,一般會在預存程序中來拼接動態SQL。使用預存程序完成相對靈活,但編碼複雜度過高,有時運作效率較低。

3、使用其他(如JAVA)程式

       使用外部的其他高階語言(如JAVA)拼接後交由資料庫執行也是一種選擇,其彈性較高,但由於JAVA缺乏對集合計算的支持,完成這些準備工作並不輕鬆。

 

如果需要執行動態SQL的主控程式是JAVA的,那麼可以使用集算器來協助完成動態SQL類別計算,集算器是動態解釋執行的腳本,可以方便拼出動態SQL執行。集算器提供了JDBC接口,可以置於Java應用程式與資料庫之間,讓應用程式繼續象存取資料庫一樣執行集算器腳本,應用程式結構幾乎不用改變。

下面透過範例來說明如何使用集算器完成動態SQL類別計算,並整合進JAVA程式。


以上是java產生SQL語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn