转载自: JAVA H2不支持mysql函数解决方案

Mock单元测试和H2内存库的使用_灵耀的博客-CSDN博客  讲述了如何使用H2内存库进行mock数据库测试,但是H2是没有百分比兼容mysql的,mysql中有些函数H2中是没有的需要自己实现,实现逻辑如下。

以dateFormat 函数为例子

需要在建表脚本中添加配置

create-authority.sql


CREATE ALIAS IF NOT EXISTS "DATE_FORMAT" FOR "com.xxx.xxx.xx.xx.H2Functions.dateFormat";
import java.text.SimpleDateFormat;
import java.util.Date;

public class H2Functions {
    public static String dateFormat(Date date,String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format.replace("%", "")
                .replace("m", "M"));
        return sdf.format(date);

    }

}