2015-10-05 53 views
1

我正在使用帶有Cassandra 2.1的Datastax驅動程序(Java),並且我想知道在性能方面是否有利用Accessor註釋的接口而不是Prepared Statements。Datastax對象映射API性能

基本上,我不知道什麼是之間的最佳方法:

方法1:

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的簡單綁定語句更好?

來自實例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")); 
} 

回答

2
  1. 我不能找到一個很好的參考鏈接,但據我所知@Accessor查詢準備了。

  2. 您的選擇主要取決於您會感覺更舒適的方法。根據您的應用程序,即使使用映射器可能會有一些開銷,它可能並不重要。