表
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)); }