下面列出了怎么用org.apache.ibatis.annotations.Lang的API类实例代码及写法,或者点击链接到github查看源代码。
@Select("SELECT permission_team.id AS id, permission_id, team_id, status AS status_value, permission_team.time AS time, " +
"permission.cluster AS cluster, permission.path AS path, team.name AS team_name " +
"FROM permission_team, permission, team " +
"WHERE permission_team.permission_id = permission.id AND permission_team.team_id = team.id " +
"AND cluster = #{cluster} AND path IN (#{paths}) AND status = #{status}")
@Lang(MybatisExtendedLanguageDriver.class)
List<PermissionTeam> listByPaths(@Param("cluster") String cluster, @Param("paths") List<String> paths, @Param("status") int status);
private LanguageDriver getLanguageDriver(Method method) {
Lang lang = method.getAnnotation(Lang.class);
Class<?> langClass = null;
if (lang != null) {
langClass = lang.value();
}
return assistant.getLanguageDriver(langClass);
}
private LanguageDriver getLanguageDriver(Method method) {
Lang lang = method.getAnnotation(Lang.class);
Class<?> langClass = null;
if (lang != null) {
langClass = lang.value();
}
return assistant.getLanguageDriver(langClass);
}
@Lang(MybatisExtendedLanguageDriver.class)
@Select("SELECT DISTINCT user.id, user.name, user.time FROM user, user_team WHERE user_team.team_id IN (#{teams}) " +
"AND user_team.user_id = user.id AND user_team.status >= #{status} AND user_team.role >= #{role}")
List<User> list(@Param("teams") Set<Long> teams, @Param("status") int status, @Param("role") int role);
@Lang(RawLanguageDriver.class)
@Select("SELECT firstName, lastName FROM names WHERE lastName LIKE #{name}")
List<Name> selectRawWithMapper(Parameter p);
@Lang(XMLLanguageDriver.class)
@Select("<script>SELECT firstName <if test=\"includeLastName != null\">, lastName</if> FROM names WHERE lastName LIKE #{name}</script>")
List<Name> selectXmlWithMapper(Parameter p);
@Lang(XMLLanguageDriver.class)
@Select("SELECT firstName, lastName FROM names WHERE lastName LIKE #{name} and 0 < 1")
List<Name> selectXmlWithMapperAndSqlSymbols(Parameter p);
@Lang(RawLanguageDriver.class)
@Select("SELECT firstName, lastName FROM names WHERE lastName LIKE #{name}")
List<Name> selectRawWithMapper(Parameter p);
@Lang(XMLLanguageDriver.class)
@Select("<script>SELECT firstName <if test=\"includeLastName != null\">, lastName</if> FROM names WHERE lastName LIKE #{name}</script>")
List<Name> selectXmlWithMapper(Parameter p);
@Lang(XMLLanguageDriver.class)
@Select("SELECT firstName, lastName FROM names WHERE lastName LIKE #{name} and 0 < 1")
List<Name> selectXmlWithMapperAndSqlSymbols(Parameter p);
/**
* 使用自定义LanguageDriver的例子,@Lang注解声明使用自定义的LanaguageDriver; 三个参数在自定义LanguageDriver中可以读取到,然后动态生成SQL
* @param tableName
* @param columns
* @param param
* @return
*/
@Lang(DynamicTableLanguageDriver.class)
@Select("")
public List<Map<String, Object>> getByConditions(@Param("tableName") String tableName,
@Param("columns") List<String> columns,
@Param("conditions") Map<String, Object> param);