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,連接的時候要加秘鑰
新聞熱點
疑難解答