如何将带有 AES_ENCRYPT 的 mariadb ddl 转换为 jooq?

Posted

技术标签:

【中文标题】如何将带有 AES_ENCRYPT 的 mariadb ddl 转换为 jooq?【英文标题】:how convert mariadb ddl with AES_ENCRYPT to jooq? 【发布时间】:2021-11-05 01:28:08 【问题描述】:
rwDsl.insertInto(table)
                .columns(
                        table.TITLE,
                        table.DESCRIPTION
                        )
                .values(
                        aesEncrypt(
                                x.getTitle(), 
                                sha1(concat("", Long.toString(created)).toString())
                        ),
                        aesEncrypt(x.getDescription(), concat("", Long.toString(created)).toString()).toString().getBytes())

不工作...

我想要这个 ddl 转换 jooq

insert into table(title, description) 
values (AES_ENCRYPT("title_test", "11111"),AES_ENCRYPT("description_test", "11111"))

【问题讨论】:

【参考方案1】:

当 jOOQ 不支持某些供应商特定功能时,请始终使用plain SQL templating:

public static Field<String> aesEncrypt(
    Field<String> string, 
    Field<String> keyString
) 
    return DSL.field("aes_encrypt(0, 1)", 
        string.getDataType(), 
        string, 
        keyString
    );

【讨论】:

以上是关于如何将带有 AES_ENCRYPT 的 mariadb ddl 转换为 jooq?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL SELECT WHERE LIKE WITH AES_ENCRYPT

如何将安装在主机服务器上的 phpmyadmin 连接到正在运行的 docker 容器内的 maria db? [关闭]

如何使用 AES_ENCRYPT 和 PDO 准备语句改进大型加密数据库的 PHP 解决方法?

Halite / Doctrine vs MySQL AES_ENCRYPT:安全/性能

如何重命名 maria DB 中的列名

MySql AES_DECRYPT & AES_ENCRYPT 密钥在 PHP 中不起作用