gpt4 book ai didi

java - JDBI (3) 对 bean 有非对称支持吗?

转载 作者:行者123 更新时间:2023-11-30 06:18:30 28 4
gpt4 key购买 nike

JDBI (3) 对查询 bean 提供出色的支持:

@SqlQuery("SELECT * FROM user ORDER BY name")
@RegisterBeanMapper(User.class)
List<User> listUsers();

并且,假设编译器设置为包含参数名称,它还支持插入 bean:

@SqlUpdate("INSERT INTO user(id, name) VALUES (:id, :name)")
void insertBean(@BindBean User user);

但是显然,当插入一个bean时,似乎你需要枚举所有bean字段,而对于查询一个bean,JDBI可以自己计算出来。我是否缺少解决方案,或者 JDBI 真的具有如此不同的查询/插入功能吗?

我认为对于两个方向,都需要有关 bean 的相同信息,所以我不明白为什么插入时,它无法自行找出字段。造成这种差异的原因是什么,还是我只是没有看到明显的东西?

最佳答案

Jdbi 旨在作为一个便利层,以便更轻松地在 Java 中使用 SQL 数据库。

给Jdbi一条SQL语句和一些参数,库将执行它并将结果(如果有)填充到某个对象中——结束。

生成 SQL 不是 Jdbi 的目标,尽管我们确实通过模板提供了一些小便利,例如@BindList

来自project documentation (强调):

Jdbi is not an ORM. There is no session cache, change tracking, "open session in view", or cajoling the library to understand your schema.

Instead, Jdbi provides straightforward mapping between SQL and simple tabular data structures.

You bring your own SQL, and Jdbi only runs the commands you tell it to—​the way God intended.

关于java - JDBI (3) 对 bean 有非对称支持吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689310/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com