Mã truy vấn và truy vấn:Không thể sử dụng truy vấn LIKE trong JDBC PreparedStatement?
ps = conn.prepareStatement("select instance_id, ? from eam_measurement where resource_id in (select RESOURCE_ID from eam_res_grp_res_map where resource_group_id = ?) and DSN like '?' order by 2");
ps.setString(1,"SUBSTR(DSN,27,16)");
ps.setInt(2,defaultWasGroup);
ps.setString(3,"%Module=jvmRuntimeModule:freeMemory%");
rs = ps.executeQuery();
while (rs.next()) { bla blah blah blah ...
Trả về một sản phẩm nào ResultSet
.
Qua gỡ lỗi cơ bản tôi đã tìm thấy các ràng buộc thứ ba đó là vấn đề tức là
DSN like '?'
Tôi đã thử tất cả các loại biến thể, hợp lý nhất trong số đó dường như được sử dụng:
DSN like concat('%',?,'%')
nhưng điều đó không hoạt động vì tôi thiếu số '
ở hai bên của chuỗi được ghép vào nhau để tôi thử:
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
nhưng tôi dường như không thể tìm cách để có được chúng trong các tác phẩm đó.
Tôi đang thiếu gì?
Viết mã Java trong tệp JSP thay vì trong một lớp Java thực (nơi bạn ** nên ** đã thực hiện) và gặp sự cố mã Java cụ thể không làm cho nó trở thành một vấn đề JSP. Bạn sẽ phải đối mặt chính xác cùng một vấn đề khi làm như vậy trong một lớp Java thực sự. Vì vậy, tôi đã xóa thẻ '[jsp]' vì nó không liên quan. – BalusC
True nó không phải là JSP cụ thể, nhưng sau đó không có gì * sai * với việc sử dụng mã như vậy trong một servlet theo hầu hết các sách tôi đã đọc, đặc biệt khi nó là một trang báo cáo siêu đơn giản của ít hơn 40 dòng mã. là một chút quá mức cần thiết :) Nhưng tôi đánh giá cao quan điểm của bạn! – SeerUK