특정 테이블 속성이있는 하나의 엔티티 클래스가 있습니다. 이 클래스의 객체는 속성에 대한 값이있는 도우미 클래스에 채워집니다. 이제 SQL 쿼리 문 (별도의 전용 메서드)을 동적으로 작성하고 일치하는 모든 행에 대해 테이블 (별도의 전용 메서드)을 쿼리하고 출력 결과 (별도의 전용 메서드)를 AuditBO 개체 목록에 매핑하는 메서드가 필요합니다.자바 코드를 통해 동적 쿼리를 작성하십시오.
답변
희망이 도움이 될 것입니다.
Table
클래스가 초기화되면 모든 입력 값이 초기화됩니다. getSelectQuery
메서드가 호출되면 입력을 기반으로 쿼리가 선택됩니다. 그리고 populatePreparedSt
이 호출되어 PreparedStatement를 설정합니다. 마지막으로 입력을 기반으로 Table
의 생성자를 설정하면 쿼리와 결과가 표시됩니다.
표 클래스 :
public class TableRow {
private String attibute1;
private String attibute2;
private int id;
// getter and setters
public final String selectQuery = " SELECT ID, ATTIBUTE1, ATTIBUTE2 FROM TABLEROW ";
public CECardLogRow(int id, String attibute1, String attibute2) {
this.id = id;
this.attibute1 = attibute1;
this.attibute2 = attibute2;
}
public String getSelectQuery() {
StringBuilder sql = new StringBuilder();
boolean whereClauseAdded = false;
sql = sql.append(selectQuery);
if (id > -1) {
sql.append(" WHERE ID = ? ");
whereClauseCt++;
}
if (attibute1 != null && attibute1.trim() != "") {
sql.append(whereClauseAdded ? " AND " : " WHERE ");
sql.append(" ATTIBUTE1 = ? ");
}
if (attibute2 != null && attibute2.trim() != "") {
sql.append(whereClauseAdded ? " AND " : " WHERE ");
sql.append(" ATTIBUTE2 = ? ");
}
return sql.toString();
}
public void populatePreparedSt (PreparedStatement ps) {
int i = 1;
if (id > -1) {
ps.setInt(i++, id);
}
if (attibute1 != null && attibute1.trim() != "") {
ps.setString(i++, attibute1);
}
if (attibute2 != null && attibute2.trim() != "") {
ps.setString(i++, attibute2);
}
}
}
호출 방법 :
public List<TableRow> getData (int id, String attibute1, String attibute2) {
List<TableRow> rows = new ArrayList<TableRow>();
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
TableRow row = new TableRow(id, attibute1, attibute2);
String sql = row.getSelectQuery();
con = global.getConnection(); // get connection
ps = con.prepareStatement(sql);
row.populatePreparedSt(ps);
rs = ps.executeQuery();
while (rs.next()) {
TableRow row = new TableRow();
// get data
row.setId(rs.getInt("ID"));// and so on
rows.add(tableRow);
}
} catch (SQLException sqe) {
throw sqe;
} finally() {
// closeConnection
}
return rows;
}
나는 당신이 나를 잘못 생각한 사람들이라고 생각합니다. EntityBo로 엔티티 클래스를 만들었습니다. 이 클래스는 테이블의 모든 필드를 갖습니다. 이제 EntityBo 클래스의 필드를 채울 하나 이상의 도우미 클래스를 갖게 될 것입니다. 이제이 엔티티 클래스도 채 웁니다. 이 후 도우미 클래스에서 동적으로 SQL 쿼리를 작성하는 메서드가 필요합니다. 그래서 기본적으로 입력 된 특성을 기반으로 쿼리를 동적으로 작성하는 메서드를 만들기 위해 여기에 붙어 있습니다. –
쿼리는 다음과 같이됩니다. SELECT * from CCMS.USER_ACT_AUDIT 여기서 CLIENT_ID = 'GUI'및 USER_ID = '[email protected]'및 ACTION = 'searchParties'with ur. 여기에서 쿼리에 언급 된 속성은 엔터티 클래스에 채워지고 이러한 특성을 기반으로 쿼리가 동적으로 만들어집니다. 그래서 나는 쿼리를 동적으로 생성하는 메서드가 필요합니다. –
입력을 기반으로 쿼리가 동적으로 빌드되는 것을 보지 못합니까? – Vaandu
- 1. PHP 코드를 다시 작성하십시오.
- 2. Jena를 사용하여 DBpedia에서 SPARQL 쿼리를 작성하십시오.
- 3. 개체의 종속성을 반환하는 쿼리를 작성하십시오.
- 4. 이 SQL 쿼리를 다시 작성하십시오
- 5. 팝업을 통해 양식을 작성하십시오.
- 6. 동적 양식 데이터를 자바 스크립트에서 쿼리를 사용하여 데이터베이스에 저장하는 방법
- 7. 자바 코드를 통해 Eclipse RCP UI
- 8. 게시 된 변수를 기반으로 MySQL 쿼리를 작성하십시오.
- 9. Ormlite에서 대/소문자를 구분하지 않음 쿼리를 작성하십시오
- 10. 결과에 동적 쿼리를 표시하지 않음
- 11. UNION 뷰를 동적 뷰로 다시 작성하십시오.
- 12. 클래스가 지정된 문서 내에 인라인 코드를 작성하십시오.
- 13. Java 코드를 C#으로 다시 작성하십시오.
- 14. 호스트 이름을 얻기 위해 C++ 코드를 작성하십시오.
- 15. 자바 os 터미널의 내용을 자바의 파일에 작성하십시오.
- 16. 더 많은 확장 성을 위해이 쿼리를 다시 작성하십시오.
- 17. 동적 XAML 통해 C#
- 18. 동적 쿼리를 즉시 실행 하시겠습니까?
- 19. SQL을 통해 SQL 서버 테이블 함수를 작성하십시오.
- 20. 자바 소스 코드를 묻습니다.
- 21. 자바 스크립트의 동적 Html.ActionLink?
- 22. XSS를 통해 PHP 코드를 실행
- 23. 자바 스크립트를 통해 링크에 동적 텍스트 입력 전달
- 24. 동적으로 자바 스크립트를 사용하여 요소를 작성하십시오
- 25. 쿼리를 통해 데이터베이스 엔진에 연결
- 26. TFS 소스 코드를 통해
- 27. 자바 스크립트 나는이 코드를 가지고있는 나는 루프를 통해 실행 해요
- 28. 코드를 통해 외부 자바 스크립트 양식의 플러그인을 제거 하시겠습니까?
- 29. 자바 코드를 통해 디스플레이 변수를 설정하거나 내보내는 방법은 무엇입니까?
- 30. 자바 코드를 통해 bat 파일을 실행할 수 없습니다.
질문은 무엇입니까? 지금까지 무엇을했는지, 그리고 어떤 특정 prolems을 실행하고 있는지 보여주세요. – vanje
아마도 어떤 종류의 ORM이 여기에서 Hibernate를 사용하는 것처럼 도움이 될 수 있습니다. 모델에서 쿼리 할 수 있습니다. –
또는 더 잘 읽을 수있는 문장과 적은 String 곡예를 원한다면 QueryDSL을 살펴볼 수 있습니다. http://www.querydsl.com/ – Gandalf