mybatis.xml直接读取配置文件(application.yml)中的数据
今天有一个需求是:大屏要查询指定时间节点后的数据,后续这个时间可能会改,也可能去掉,
为了方便后面修改,所有想直接读取配置文件中的数据,经过研究+问Ai,最后得出一个方法:
具体操作如下:
application.yml 添加如下配置
config:StartTimeOfTheStatistical: '2025-09-02' #统计开始时间
ConfigValueUtil 配置类中添加如下代码
@Data
@Component
@ConfigurationProperties(prefix = "config")
public class ConfigValueUtil {@Value("${config.StartTimeOfTheStatistical}")private static Date StartTimeOfTheStatistical;@Value("${config.StartTimeOfTheStatistical:}")private String startTimeOfTheStatistical;private static String staticStartTimeOfTheStatistical;@PostConstructpublic void init() {if (StringUtil.isNotEmpty(startTimeOfTheStatistical)) {staticStartTimeOfTheStatistical = startTimeOfTheStatistical;}}public static String getStaticStartTimeOfTheStatistical() {return staticStartTimeOfTheStatistical;}
}
解释一下:这里为什么要一个static的变量,因为mybatis只支持读取静态的数据。
mapper.xml使用`
<select id="statisticsProblem" resultType="">SELECTCOUNT(0) AS totalCountFROMxxxxx as bWHERE<if test="@jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical() != null or @jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical() != ''"><bind name="staticStartTimeOfTheStatistical" value="@jnpf.config.ConfigValueUtil@getStaticStartTimeOfTheStatistical()"/>and b.WHISTLE_TIME >= #{staticStartTimeOfTheStatistical}</if></select>
大家凑合着看吧,时间有点急,先记一下