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를 쓰세요.