JDBC vs CDS Query — CAP Java 선택 기준 #shorts #SAP #CAP

Moderator · 조회 3

CAP Java DB 접근 방식

SAP CAP for Java에서 데이터베이스에 접근하는 방법은 크게 두 가지입니다. CDS Query API(CQL)와 JDBC 직접 접근입니다. 언제 어느 것을 써야 할지 알면 코드가 훨씬 깔끔해집니다.

CDS Query API 사용

// CDS Query API — 타입 안전, 이식성 높음
Cqn select = Select.from(Books_.class)
  .where(b -> b.stock().gt(0));
Result result = db.run(select);

// OData 요청과 자동 매핑
@On(event = CdsService.EVENT_READ, entity = Books_.CDS_NAME)
public void onRead(CdsReadEventContext ctx) {
    ctx.setResult(db.run(ctx.getCqn()));
}

JDBC 직접 접근

// JDBC — 복잡한 Native SQL 필요 시
@Autowired
private DataSource dataSource;

try (Connection conn = dataSource.getConnection();
     PreparedStatement ps = conn.prepareStatement(
       "SELECT * FROM BOOKS WHERE STOCK > ?")) {
    ps.setInt(1, 0);
    ResultSet rs = ps.executeQuery();
}

선택 기준

CDS Query API는 CDS 엔티티와 자동 매핑되고, 멀티 테넌시/권한 처리가 자동으로 됩니다. JDBC는 Window Function, 복잡한 JOIN 등 CQL로 표현하기 어려운 경우에 사용합니다.

핵심 한 줄

기본은 CDS Query API — Native SQL이 꼭 필요할 때만 JDBC를 쓰세요.