Rumah  >  Artikel  >  Java  >  java生成SQL语句

java生成SQL语句

巴扎黑
巴扎黑asal
2017-07-18 15:47:162469semak imbas

代码如下:

 /** * 动态生成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程序。


Atas ialah kandungan terperinci java生成SQL语句. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn