2011-12-13 30 views
6

Đang sử dụng NamedParameterJdbcTemplate cho nơi các phần tử Khoản và một trong số chúng có vẻ là List<String>. JdbcTemplate thay thế chúng?,?,? ... (kích thước danh sách) nhưng đối với mệnh đề IN có số List<String> thì phải là '?', '?' ....JdbcTemplate IN Khoản cho các phần tử chuỗi

Có cách nào khác không?

Trả lời

8

Có một vài câu hỏi tương tự khác ra khỏi đó mà có thể có câu trả lời hữu ích cho bạn:

How to execute IN() SQL queries with Spring's JDBCTemplate effectivly?

Để làm cho phong cách này của công việc truy vấn kết thúc, tôi phải chuyển từ đồng bằng cũ JdbcTemplate để NamedParameterJdbcTemplate .

Dưới đây là một số mã ví dụ:

String query = "select * from table where columnName in (:listOfValues)"; 
List<String> nameRecordIDs = new ArrayList<String>(); 
// ... 
// add values to collection, then 
// ... 
Map namedParameters = Collections.singletonMap("listOfValues", nameRecordIDs); 
namedparameterJdbcTemplate.query(query, namedParameters,new MyMapper()); 
Các vấn đề liên quan