Datastax对象映射API性能

时间:2015-10-05 09:15:39

标签: java performance cassandra datastax

我正在使用带有Cassandra 2.1的Datastax Driver(Java),我想知道在性能方面是否有使用Accessor-annotated接口而不是Prepared Statements的好处。

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

方法1:

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

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

AND

方法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的简单绑定语句更好?

来自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 个答案:

答案 0 :(得分:2)

  1. 我找不到链接的好参考,但也准备了afaik @Accessor查询。

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