准备语句与Cassandra中的Bound语句?

bra*_*orm 5 prepared-statement datastax-java-driver cassandra-2.0

我想知道使用BoundStatement结束有PreparedStatement什么好处?

PreparedStatement statement = session.prepare(
                      "INSERT INTO simplex.songs " +
                      "(id, title, album, artist) " +
                      "VALUES (?, ?, ?, ?);");

BoundStatement boundStatement = new BoundStatement(statement);
            session.execute(boundStatement.bind(
                  UUID.fromString("756716f7-2e54-4715-9f00-91debea6cf50"),
                  "La Petite Tonkinoise",
                  "Bye Bye Blackbird",
                  "Joséphine Baker");
Run Code Online (Sandbox Code Playgroud)

最简单的方法是:

PreparedStatement ps = session.prepare(
                      "INSERT INTO simplex.songs " +
                      "(id, title, album, artist, tags) " +
                      "VALUES (?, ?, ?, ?, ?);");
ps.bind(UUID.fromString("756716f7-2e54-4715-9f00-91debea6cf50"),
                      "La Petite Tonkinoise",
                      "Bye Bye Blackbird",
                      "Joséphine Baker");
Run Code Online (Sandbox Code Playgroud)

如您所见,我可以将数据绑定到preparedStatement没有boundStatements.哪里boundStatement有用?

Car*_*ini 6

没有优势:BoundStatement只不过是带有变量限制的PreparedStatement.bind()事实上,PreparedStatements 的方法返回BoundStatement.