@Target(value=METHOD)
@Retention(value=RUNTIME)
@Documented
public @interface MyQueryForMap
abstract methods of ineterface can have parameter type pattens as blow:
1, no parameter
@MyQueryForMap("select * from users")
public Map<String, Object> queryForMap1();
2, no map, no javabean, can array or list
the ?num in the sql refers to numth parameter of parameter list
@MyQueryForMap("select * from users (where name in(?1))?1")
public Map<String, Object> queryForMap1(String[] ids);
@MyQueryForMap("select * from users (where name=?1)?1")
public Map<String, Object> queryForMap1(String name);
3, javabean
@MyQueryForMap("select * from users (where name=?name)?name")
public Map<String, Object> queryForMap1(User user);
4, Map<String, Object>
@MyQueryForMap("select * from users (where name=?name)?name")
public Map<String, Object> queryForMap1(Map<String, Object> map);
return type can Map<String, Object> or javabean
throws an execption when the entry size of result is not one, that behavior is same as jdbctamplate.