Мне довольно удобно использовать mybatis в качестве инструмента ORM. Но я не могу понять, как работает сопоставление параметров в mybatis.
скажем, у меня есть определенный интерфейс mybatis mapper, у которого есть метод для получения сведений о пользователе.
И у меня определен мой Querybuilder
класс, в котором есть выбор query
.
public interface UserMapper {
@SelectProvider(type = UserQueryBuilder.class, method = "getUserId")
Long getUserId(@Param("first") String firstName, @Param("last") String lastName, @Param("location") String location);
}
public class UserQueryBuilder(){
public String getUserId(String firstName, String lastName, String location) {
return new SQL() {{
SELECT("USER_TABLE.USER_ID");
FROM("USER_TABLE");
WHERE("USER_TABLE.FIRST_NAME" + " = #{first}");
WHERE("USER_TABLE.LAST_NAME" + " = #{last}");
WHERE("USER_TABLE.LOCATION" + " = #{location}");
}}.toString();
}
}
В упомянутом выше QueryBuilder
показано, как параметры SQL-запроса могли быть сопоставлены с "первым" и "последним" значениями параметров, определенными в интерфейсе 'userMapper'.