表
API 中定义了 Table 的数据形式以方便用户对数据的查询与使用。
创建表
方式一:通过构造方法
public BasicTable(final List<String> colNames, final List<Vector> cols)
参数介绍
colNames:表示表的列名。cols:表示每一列的具体数据。
方式二:通过查询获取表数据
DBConnection dbConnection = new DBConnection();
DBConnection dbConnection = new DBConnection();
dbConnection.connect(HOST,PORT,USER,PASSWORD);
BasicTable basicTable = (BasicTable) dbConnection.run("select * from loadTable(\"dfs://ramd\",`pt3)");
表的基本使用
1. 通过 getColumn 方法获取某一列的所有值,方法定义如下:
// 第一种定义,可以通过列号来获取
public Vector getColumn(int index)
// 第二种定义,可以通过列名来获取
public Vector getColumn(String name)
返回值是 Vector 对象(com.xxdb.data.Vector),可以通过这个 Vector 遍历所有数据。
2. 直接操作 getColumn 返回的 Vector 对象来修改表中的内容,示例:
public void test_set_nullvalue() throws IOException {
try{
List<String> colNames = Arrays.asList("cint","cdouble","clong","cfloat","cshort");
List<Vector> colData = Arrays.asList(new BasicIntVector(1),new BasicDoubleVector(1),new BasicLongVector(1),new BasicFloatVector(1),new BasicShortVector(1));
BasicTable bt = new BasicTable(colNames,colData);
bt.getColumn("cint").set(0,new BasicInt(Integer.MIN_VALUE));
bt.getColumn("cdouble").set(0,new BasicDouble(-Double.MIN_VALUE));
bt.getColumn("clong").set(0,new BasicLong(Long.MIN_VALUE));
bt.getColumn("cfloat").set(0,new BasicFloat(-Float.MAX_VALUE));
bt.getColumn("cshort").set(0,new BasicShort(Short.MIN_VALUE));
bt.getColumn("cshort").set(0,new BasicShort(Short.MIN_VALUE));
bt.getColumn("cshort").set(0,new BasicShort(Short.MIN_VALUE));
assertTrue(((Scalar)bt.getColumn("clong").get(0)).isNull());
}catch (Exception e){
e.printStackTrace();
}
}
3. 如果想直接生成每一行 JSON 格式的数据,可以调用 getRowJson 方法:
DBConnection dbConnection = new DBConnection();
dbConnection.connect(HOST,PORT,USER,PASSWORD);
BasicTable basicTable = (BasicTable) dbConnection.run("select * from loadTable(\"dfs://ramd\",`pt3)");
// 获取行数
int rows = basicTable.rows();
// 遍历每一行
for(int i=0;i<rows;i++){
System.out.println(basicTable.getRowJson(i));
}
