gpt4 book ai didi

java - Datastax 对象映射 API 性能

转载 作者:行者123 更新时间:2023-11-30 03:14:33 25 4
gpt4 key购买 nike

我将 Datastax 驱动程序 (Java) 与 Cassandra 2.1 一起使用,我想知道在性能方面,使用访问器注释的接口(interface)而不是准备好的语句是否有好处。

基本上,我想知道以下之间最好的方法是什么:

方法一:

PreparedStatement statement = session.prepare("SELECT * FROM USER WHERE name = ?");
ResultSet resultSet = session.execute(statement.bind("someone"));

User user = userMapper.map(resultSet).one();

方法2:

@Accessor
public interface UserAccessor {
@Query("SELECT * FROM USERS WHERE name = :name")
User getUser(@Param("userName") String name);
}

...

MappingManager manager = new MappingManager (getSession());
User user = new User ();
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
User user = userAccessor.getUser("someone");

此外,如果我想要性能,我应该使用这个映射器,还是使用 POJO 的简单绑定(bind)语句更好?

来自 Datastax Documentation 的示例

PreparedStatement statement = session.prepare("SELECT * FROM USER WHERE name = ?");
BoundStatement bind= statement.bind("someone");

ResultSet results = session.execute(bind);
for (Row row : results) {
User user = new User (row.getString("name"));
}

最佳答案

  1. 我找不到很好的引用链接,但据我所知 @Accessor 查询也已准备就绪。

  2. 您所做的选择主要取决于您觉得更舒服的方法。根据您的应用程序,即使使用映射器可能会产生一些开销,也可能并不重要。

关于java - Datastax 对象映射 API 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32944965/

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