首页 > 学院 > 开发设计 > 正文

连接AWS的DynamoDB例子(scala版)

2019-11-08 20:43:00
字体:
来源:转载
供稿:网友

scala连接dynamoDB的案例:

废话不多说,直接上代码

import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientimport com.amazonaws.services.dynamodbv2.document.DynamoDBimport com.amazonaws.services.dynamodbv2.document.Tableimport com.amazonaws.services.dynamodbv2.model.KeySchemaElementimport com.amazonaws.services.dynamodbv2.model.KeyTypeimport com.amazonaws.services.dynamodbv2.model.AttributeDefinitionimport com.amazonaws.services.dynamodbv2.model.ScalarAttributeTypeimport com.amazonaws.services.dynamodbv2.model.PRovisionedThroughputimport com.amazonaws.services.dynamodbv2.document.Itemimport com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperimport com.amazonaws.auth.BasicAWSCredentialsimport com.amazonaws.services.dynamodbv2.document.PrimaryKeyimport com.amazonaws.regions.Regionsimport java.util.Arraysimport com.amazonaws.services.dynamodbv2.document.spec.ScanSpecimport com.amazonaws.services.dynamodbv2.document.internal.IteratorSupportimport com.amazonaws.services.dynamodbv2.document.ScanOutcomeclass DynamoDBService() {//产品的秘钥   就是账号和密码 连接本地安装的DynamoDB的时候使用      private val credentials: BasicAWSCredentials = new BasicAWSCredentials("wwwwwwwwwwww", "mmmmmmmmmm")  private val client: AmazonDynamoDBClient = if (true) {    //连接本地的DynamoDB    new AmazonDynamoDBClient(credentials).withEndpoint(options.dynamoDbEndpoint)  } else {  //直接连接AWS上的DynamoDB    new AmazonDynamoDBClient().withEndpoint(options.dynamoDbEndpoint)  }   //创建DynamoDB实例  val dynamoDB: DynamoDB = new DynamoDB(client)  val dbMapper: DynamoDBMapper = new DynamoDBMapper(client)     //创建一个表  def createTable(tableName: String): Unit = {    dynamoDB.createTable(tableName, Arrays.asList(new KeySchemaElement("主键", KeyType.HASH), new KeySchemaElement("排序键", KeyType.RANGE)),      Arrays.asList(new AttributeDefinition("主键", ScalarAttributeType.S), new AttributeDefinition("排序键", ScalarAttributeType.N)),      new ProvisionedThroughput(10L, 10L)).waitForActive()  }  //添加一个项目  def addItem(tableName: String, eventString: String, value: Long, dateTime: Long): Unit = {    dynamoDB.getTable(tableName).putItem(new Item().withPrimaryKey("主键", eventString, "排序键", dateTime).withLong("value", value))  }//查询  def selectTableByName(tableName: String): IteratorSupport[Item, ScanOutcome] = {    dynamoDB.getTable(tableName).scan(new ScanSpec).iterator()  }}

主要注意的就是下载本地版本的DynamoDB,连接的时候要加秘钥


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表