java jdbi3 withHandle delete不更新数据库

Posted

技术标签:

【中文标题】java jdbi3 withHandle delete不更新数据库【英文标题】:java jdbi3 withHandle delete not updating the DB 【发布时间】:2019-11-22 22:16:57 【问题描述】:

我正在使用 java JDBI3 在 mariaDB 上执行基本的 CRUD。 我能够成功建立连接。

来自 java 的 select * 查询正常工作。

jdbi.withHandle(handle -> handle.createQuery(
                "SELECT * FROM users where email = :email;")
                .bind("email", email)

        );

同样,当我尝试从中删除时不会更新数据库

jdbi.withHandle(handle -> 
                    return handle.createUpdate(
                            "DELETE FROM users WHERE email = :email;")
                            .bind("email", email)
                            .execute();
                
        );

我尝试登录 sql shell 并在那里形成我可以删除

DELETE FROM users WHERE email = 'dummy@email.com'

谁能告诉我我做错了什么?

【问题讨论】:

您是否尝试过从您的声明中删除; 是的,它没有帮助。 【参考方案1】:

根据其文档,您不应该使用“createUpdate”方法: https://jdbi.org/apidocs/org/jdbi/v3/core/Handle.html

创建一个返回行数的插入或更新语句 修改。

改为写

jdbi.withHandle(handle -> 
                    return handle.execute(
                            "DELETE FROM users WHERE email = :email",email);
                );

【讨论】:

以上是关于java jdbi3 withHandle delete不更新数据库的主要内容,如果未能解决你的问题,请参考以下文章

Firebase:如何在observeSingleEvent() 之后删除Observer(withHandle:)?

如何从 withHandlers 调用另一个函数?

这两个并发事务之间的数据如何泄漏?

java.io.IOException: Cannot run program “del“: CreateProcess error=2, 系统找不到指定的文件。

json Ejemplosdecreacióndepagos con el del SDK para Java de MercadoPago

Java基础二