Cassandra 中MappingCodec的用法示例
程序员文章站
2024-03-19 22:23:04
...
对应错误:
com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [bigint <-> java.util.Date]
// 主要用于将Cassandra中不支持的类型使用自定义的方法转换
// 此类错误均可使用类似方法解决
import com.datastax.driver.core.*;
import java.util.Date;
public class CodecTest {
static class DateToBigintCodec extends MappingCodec<Date, Long> {
DateToBigintCodec() {
// creates a mapping from bigint <-> Date.
super(TypeCodec.bigint(), Date.class);
}
@Override
protected Date deserialize(Long value) {
return new Date(value);
}
@Override
protected Long serialize(Date value) {
return value.getTime();
}
}
public static void main(String args[]) {
TypeCodec<Date> codec = new DateToBigintCodec();
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
try {
// register custom codec
cluster.getConfiguration().getCodecRegistry().register(codec);
Date date = new Date();
Session session = cluster.connect();
// insert Date value into column v, which is a bigint.
// schema:
// CREATE TABLE simple.tbl (k int PRIMARY KEY, v bigint)
PreparedStatement prepared = session.prepare("insert into simple.tbl (k, v) values (?, ?)");
BoundStatement bound = prepared.bind();
bound.setInt("k", 0);
bound.setTimestamp("v", date);
session.execute(bound);
// Retrieve column v as a Date.
Row row = session.execute("select v from simple.tbl").one();
System.out.println(row.getTimestamp("v"));
} finally {
cluster.close();
}
}
}
上一篇: Python遇到的一些小问题
推荐阅读
-
Cassandra 中MappingCodec的用法示例
-
Java中System.getProperties()的简介 博客分类: more and more备忘录javajust do it javasunjdkSystem.getProperties()用法
-
Android中数据库开发之LitePal的基本用法
-
[一起学Hive]之十一-Hive中Join的类型和用法 博客分类: hive hiveHive Join
-
Kotlin中的?. ?: !!. 区别和用法
-
[转] Linux中find常见用法示例 博客分类: linux linuxfind
-
php使用变量动态创建类的对象用法示例
-
详解Java中Iterator迭代器的用法
-
Yii2中hasOne、hasMany及多对多关联查询的用法详解
-
HT for Web 中Painter的介绍及用法 电信机房网管HTML5拓扑