java jdbi3 withHandle删除不更新数据库

标签 java mysql jdbc mariadb jdbi

我正在使用 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'

有人可以告诉我我做错了什么吗?

最佳答案

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

Create an Insert or Update statement which returns the number of rows modified.

相反,写

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

关于java jdbi3 withHandle删除不更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018943/

相关文章:

java - 如何让连接线程保持 Activity 状态? (我需要使用守护进程吗?)

java - 我做错了什么? (编写虚拟 Activity 并通过 C# 调用它)

mysql - 查找具有 5 个共同字段中的 3 个的行 - 如何加快查询速度?

java - .MySQLNonTransientConnectionException : Could not create connection to database server

java - 如何在我的 mysql 中查找查询返回的结果数?

java - Android Studio 运行时异常

java - C# WCF 客户端绑定(bind) 互操作 Blackboard Java WS-Security over HTTPS 传输

mysql - 比较两个表,获取其他表中不存在的所有用户名

mysql查询需要在sql server中转换为find_in_set和group_concat关键字

mysql - 本地服务器上的数据库 url