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,连接的时候要加秘钥
新闻热点
疑难解答