java
  • sql
  • jooq
  • 2013-10-16 2 views 0 likes 
    0

    는 이전에 나는 문을 작업했지만, 난 내가 JOOQ 내 아래의 라인을 변경하는 방법을 알 필요가 JOOQ를 사용하여 테이블을 변경하는 방법은 무엇입니까?

    Statement dboSt = null; 
    
    dboSt = dboConn.createStatement(); 
    

    JOOQ

    로 변환해야합니다.

    dboSt.executeUpdate("alter login \"" + UserId + "\" with password='" + NewPassword + "'"); 
    
    dboSt.executeUpdate("alter login \"" + UserId + "\" with password='" + NewPassword + "' old_password='" + OldPassword 
               + "'"); 
    

    변환 할 수있는 해결책이 있습니까?

    답변

    0

    jOOQ는 형식 안전 DDL (아직)을 지원하지 않습니다. 같은 직접 jOOQ를 사용하여 일반 SQL 문을 실행할 수 있으며, 그 동안 #883

    : 그것은 잠시 동안 로드맵에있었습니다 dboSt.executeUpdate ("

    DSLContext ctx = DSL.using(configuration); 
    
    // As before, manually inlining arguments: 
    ctx.execute("alter login \""+UserId+"\" with password='"+NewPassword+"'"); 
    
    // Better, letting jOOQ do the string escaping for you, preventing 
    // syntax errors and SQL injection vulnerabilities: 
    ctx.execute("alter login {0} with password = {1}", 
        DSL.name(UserId),  // org.jooq.Name is rendered with quotes in most DBs 
        DSL.inline(NewPassword) // org.jooq.Param is inlined as a (string) literal 
    ); 
    
    +0

    방법 이하의 코드 변환 "+ NewPassword +" 'old_password =' ​​"+ OldPassword +" ' ")를 사용하여 login \" "+ UserId +"\ "를 변경하십시오. – psisodia

    +1

    @ psisodia : 그 대답을 얻는 것은 기존 대답에서 나온 작은 단계에 불과합니다. 스스로 생각할 수있는 몇 가지 방법이 있습니다 :-) –

     관련 문제

    • 관련 문제 없음^_^