@Target(value=METHOD)
@Retention(value=RUNTIME)
public @interface MyQueryForList
abstract methods of ineterface can have parameter type pattens as blow:
1, no parameter
@MyQueryForList("select * from users")
public List<Map<String, Object>> query();
2, no map, no javabean, can array or list
the ?num in the sql refers to numth parameter of parameter list
@MyQueryForList("select * from users (where name=?1)?1")
public List<Map<String, Object>> query(String name);
@MyQueryForList("select * from users (where id in(?1))?1")
public List<Map<String, Object>> query(Integer[] ids);
@MyQueryForList("select * from users (where id in(?1))?1")
public List<Map<String, Object>> query(List ids);
3, javabean
@MyQueryForList("select * from users (where name=?name)?name")
public List<Map<String, Object>> query(User user);
4, Map<String, Object>
@MyQueryForList("select * from users (where name=?name)?name")
public List<Map<String, Object>> query(Map<String, Object> map);
return types can be
List<Map<String, Object>>
List<javabean>