>  기사  >  Java  >  Java는 SQL 문을 생성합니다.

Java는 SQL 문을 생성합니다.

巴扎黑
巴扎黑원래의
2017-07-18 15:47:162468검색

코드는 다음과 같습니다.

 /** * 动态生成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 계산을 완료할 수 있습니다. esProc는 동적 SQL을 동적으로 해석하고 실행하는 스크립트로, 쉽게 동적 SQL을 실행할 수 있습니다. esProc은 Java 애플리케이션과 데이터베이스 사이에 배치할 수 있는 JDBC 인터페이스를 제공하므로 애플리케이션은 애플리케이션 구조를 거의 변경하지 않고도 마치 데이터베이스에 액세스하는 것처럼 esProc 스크립트를 계속 실행할 수 있습니다.

다음은 예제를 사용하여 esProc을 사용하여 동적 SQL 계산을 완료하고 이를 JAVA 프로그램에 통합하는 방법을 보여줍니다.


위 내용은 Java는 SQL 문을 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.