浏览代码下载ZIP
Azure Cosmos DB是一个全球分布式多模型数据库,此样本将引导您完成创建表,插入和查询数据。
前提条件在运行此示例之前,必须具备以下先决条件:
有效的Azure Cassandra API帐户-如果您没有帐户,请参考创建Cassandra API帐户。
在Ubuntu上,运行apt-get install default-jdk安装JDK
确保将JAVA_HOME环境变量设置为指向安装JDK的文件夹
在Ubuntu上,你可以运行apt-get install maven安装Maven
Git
在Ubuntu上,你可以运行sudo apt-get install git 安装Git
运行此示例
克隆此存储库使用git clone git@github.com:Azure-Samples/azure-cosmos-db-cassandra-java-getting-started.git cosmosdb 。
使用repo将目录更改为cd cosmosdb
接下来,将Cassandra host,username,password srcmainresourcesconfig.properties替换为门户connectionstring面板中的Cosmos DB帐户的值。cassandra_host=
cassandra_username=
cassandra_password=
ssl_keystore_file_path=
ssl_keystore_password=
如果config.properties中未提供ssl_keystore_file_path,则默认情况下将使用/jre/lib/security/cacerts,如果config.properties中未提供ssl_keystore_password,则将使用默认密码'changeit '
运行mvn clean install从cosmosdb文件夹中生成项目,这将在目标文件夹下生成cosmosdb-cassandra-examples.jar。
运行java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 在启动java应用程序的终端中。
关于代码
这个示例包含的代码可以帮助你快速启动一个Java控制台应用程序,这个应用程序使用Cassandra API连接到Azure Cosmos DB。
查看代码
如果你对了解如何在代码中创建数据库资源感兴趣,可以查看以下代码片段,src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java 和src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java 文件。
Cassandra主机,端口,用户名和密码是使用Azure门户中的连接字符串页面设置的。this.cluster = Cluster.builder().addContactPoint(host).withPort(port).withCredentials(username, password).build();
cluster连接到Azure Cosmos DB Cassandra API并返回一个会话来访问。return cluster.connect();
创建一个新的keyspacepublic void createKeyspace() {
final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }";
session.execute(query);
LOGGER.info("Created keyspace 'uprofile'");
}
创建新表。public void createTable() {
final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)";
session.execute(query);
LOGGER.info("Created table 'user'");
}
使用prepared语句对象插入用户实体。public PreparedStatement prepareInsertStatement() {
final String insertStatement = "INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (?,?,?)";
return session.prepare(insertStatement);
}
public void insertUser(PreparedStatement statement, int id, String name, String city) {
BoundStatement boundStatement = new BoundStatement(statement);
session.execute(boundStatement.bind(id, name, city));
}
获取所有用户信息的查询。public void selectAllUsers() {
final String query = "SELECT * FROM uprofile.user";
List rows = session.execute(query).all();
for (Row row : rows) {
LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
}
}
获取单用户信息的查询。public void selectUser(int id) {
final String query = "SELECT * FROM uprofile.user where user_id = 3";
Row row = session.execute(query).one();
LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
}