gpt4 book ai didi

java - 如何使用 JDBI 进行通用插入?

转载 作者:行者123 更新时间:2023-11-29 05:18:32 24 4
gpt4 key购买 nike

我正在将 JDBI 与 MySQL 一起使用,并且我有一个接口(interface) GenericDao,其中包含此方法

public void insert(T entity);

我如何使用流畅的查询而不是 SQLObjects 通过 JDBI 实现此方法?

是否可以使用其中任何一个?

handle.insert

handle.createQuery 

最佳答案

当我使用 SQLObjects 样式时,我发现 SQLObjects 对我来说效果很好:

public interface GenericDao<T> {
List<T> findAll();
long insert(T t);
long update(T t);
long delete(long id);
T findNameById(long id);
}

然后我使用一个抽象类来放入所有的 SQL

@RegisterMapper(VesselJDBIMapper.class)
public abstract class VesselJDBI implements Transactional<VesselJDBI>, GenericDao<Vessel> {

@SqlUpdate("UPDATE vessel SET vessel_name = :vesselName, version = version +1 WHERE vessel_id = :id" +
" AND version = :version")
public abstract long update(@BindBean Vessel vessel);

@SqlUpdate("DELETE FROM vessel WHERE vessel_id = :id")
public abstract long delete(@Bind("id") long id);

@SqlQuery("SELECT vessel_id, vessel_name, version FROM vessel WHERE vessel_id = :id")
public abstract Vessel findNameById(@Bind("id") long id);

@SqlUpdate("INSERT INTO vessel (vessel_name, version) VALUES (:vesselName, :version)")
@GetGeneratedKeys
public abstract long insert(@BindBean Vessel vessel);

@SqlQuery("SELECT vessel_id, vessel_name, version FROM vessel ORDER BY vessel_id")
public abstract List<Vessel> findAll();
}

也许这将为某人提供解决方案。

关于java - 如何使用 JDBI 进行通用插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256039/

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