mybatis.xml直接读取配置文件(application.yml)中的数据

发布于:2025-08-30 ⋅ 阅读:(21) ⋅ 点赞:(0)

今天有一个需求是:大屏要查询指定时间节点后的数据,后续这个时间可能会改,也可能去掉,
为了方便后面修改,所有想直接读取配置文件中的数据,经过研究+问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;


    @PostConstruct
    public void init() {
        if (StringUtil.isNotEmpty(startTimeOfTheStatistical)) {
            staticStartTimeOfTheStatistical = startTimeOfTheStatistical;
        }
    }

    public static String getStaticStartTimeOfTheStatistical() {
        return staticStartTimeOfTheStatistical;
    }
}

解释一下:这里为什么要一个static的变量,因为mybatis只支持读取静态的数据。

mapper.xml使用`

<select id="statisticsProblem" resultType="">
        SELECT
            COUNT(0) AS totalCount
        
        FROM
            xxxxx as b
        WHERE
        
        <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>

大家凑合着看吧,时间有点急,先记一下


网站公告

今日签到

点亮在社区的每一天
去签到