Thứ Sáu, 25 tháng 2, 2011

Excecute query with array param in jdo

Cách excecute một câu query với nhiều tham số truyền vào trong jdo

Cú pháp cho một trường hợp cụ thể khi lấy data :


//pm : PersistenceManager
Query query_variable_name =  pm.newQuery(class_name.class);
//thêm các điều kiên. của câu query ở đây cho phù hợp với yêu cầu của đầu bài
query.setFilter("property_name1 (điều kiện : == or || or > or <...) property_name1Param && property_name2 (điều kiện: == or || or > or <...) property_name2Param");
// khai báo các biến và kiểu dữ liệu của biến
query.declareParameters("dataType property_name1Param, dataType property_name2Param");
//Khai báo mảng và chứa các tham số sẽ dùng trong câu truy vấn vào mảng khai báo
Object [] params_variable_name = {value_param1,value_param2};
//chạy câu query với tham số truyền vào là một array các params
List<ObjectType> articlesCate = (List<ObjectType>) pm.newQuery(query_variable_name).executeWithArray(params_variable_name);


Ví dụ :



// select các trường trong Article
Query querySameCategory = pm.newQuery(Article.class);
// set điều kiện lọc cho category và date
querySameCategory.setFilter("category == categoryParam && date < dateParam");
//sắp xếp theo chiều giảm dần
querySameCategory.setOrdering("date desc");
// lấy 13 bản ghi trong khoảng từ 0 đến 12
querySameCategory.setRange("0,12");
//khai báo kiểu dữ liệu là String và Date lần lượt cho 2 tham số truyền vào arrayParam
querySameCategory.declareParameters("String categoryParam,java.util.Date dateParam");
//Khai báo mảng dữ liệu và set giá trị cho tham số trong mảng
Object [] params = {articles.get(0).getCategory(),articles.get(0).getDate()};
//Chạy câu truy vấn với tham số truyền vào là 1 mảng các tham số
List<Article> articlesCate = (List<Article>) pm.newQuery(querySameCategory).executeWithArray(params);

Hết! ^^

Không có nhận xét nào:

Đăng nhận xét