Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Resultset构造数组数组_Java - Fatal编程技术网

Java 如何从Resultset构造数组数组

Java 如何从Resultset构造数组数组,java,Java,我正在谷歌图表和API上工作 谷歌可视化烛台图表(GoogleVisualizationCandlestickCharts)希望数据是一组数组,这样才能正常工作 例如下面的格式 [ [ "2011-08-01", 136.65, 136.96, 134.15, 136.49 ], [ "2011-08-02", 135.26, 135.95, 131.50, 131.85 ], [ "2011-08-05", 132.90, 135.27, 128.30, 135.25 ] ] 这是我从数据库

我正在谷歌图表和API上工作 谷歌可视化烛台图表(GoogleVisualizationCandlestickCharts)希望数据是一组数组,这样才能正常工作

例如下面的格式

[
[ "2011-08-01", 136.65, 136.96, 134.15, 136.49 ],
[ "2011-08-02", 135.26, 135.95, 131.50, 131.85 ],
[ "2011-08-05", 132.90, 135.27, 128.30, 135.25 ]
]
这是我从数据库中检索数据的SQL

String selectsql = "select current_day ,  open_val , high_val , low_val , close_val  from   historical_data where symbol_name = ?";
while(Rset.next())
            {
                String current_day =  SgxRset.getString("current_day");
                String open_val =  SgxRset.getString("open_val");
                String high_val =  SgxRset.getString("high_val");
                String low_val =  SgxRset.getString("low_val");
                String close_val =  SgxRset.getString("close_val");
            }
你能告诉我如何构造一个数组吗

示例程序

import java.util.ArrayList;
import java.util.List;

import org.json.JSONException;

public class TestJSON {

    public static void main(String[] args) throws JSONException {
        Employee emp1 = new Employee();
        emp1.setName("Ravi");
        emp1.setName("20");
        Employee emp2 = new Employee();
        emp2.setName("Kiran");
        emp2.setName("20");
        List<Employee> histList = new ArrayList<Employee>();

         Object[] arrayResultData = histList.toArray();

    }
}


public class Employee {

    String name ;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    String age ;

}
import java.util.ArrayList;
导入java.util.List;
导入org.json.JSONException;
公共类TestJSON{
公共静态void main(字符串[]args)抛出JSONException{
员工emp1=新员工();
emp1.设定名称(“Ravi”);
emp1.设定名称(“20”);
员工emp2=新员工();
emp2.设定名称(“基兰”);
emp2.设定名称(“20”);
List histList=new ArrayList();
对象[]arrayResultData=histList.toArray();
}
}
公营雇员{
字符串名;
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getAge(){
回归年龄;
}
公共无效设置(字符串期限){
这个。年龄=年龄;
}
弦年龄;
}

我推荐一个列表。您不知道您的列是什么以及有多少列:

List<HistData> histList = new ArrayList<HistData>();
//.. query db
while(Rset.next()){
  HistData histData = new HistData();
  histData.setCurrentDay( SgxRset.getString("current_day"));
  histData.setOpenVal( SgxRset.getString("open_val"));
  histData.setHighVal( SgxRset.getString("high_val"));
  histData.setLowVal( SgxRset.getString("low_val"));
  histData.setCloseVal( SgxRset.getString("close_val"));
  histList.add(histData);
}

创建一个类,该类将使用getter和setter将所有这些数据保存在一个对象中,如下所示:

 public class Data {
            private String current_day;
    private double open_val;
    private double high_val;
    private double low_val;
    private double close_val;

    public Data(String current_day, double open_val, double high_val,
            double low_val, double close_val) {
        this.current_day = current_day;
        this.open_val = open_val;
        this.high_val = high_val;
        this.low_val = low_val;
        this.close_val = close_val;
    }

    public String getCurrent_day() {
        return current_day;
    }

    public void setCurrent_day(String current_day) {
        this.current_day = current_day;
    }

    public double getOpen_val() {
        return open_val;
    }

    public void setOpen_val(double open_val) {
        this.open_val = open_val;
    }

    public double getHigh_val() {
        return high_val;
    }

    public void setHigh_val(double high_val) {
        this.high_val = high_val;
    }

    public double getLow_day() {
        return low_val;
    }

    public void setLow_day(double low_day) {
        this.low_val = low_day;
    }

    public double getClose_day() {
        return close_val;
    }

    public void setClose_day(double close_day) {
        this.close_val = close_day;
    }

    }
现在,将数据存储在从SQL获取的对象数组中

String selectsql = "select current_day ,  open_val , high_val , low_val ,close_val  from   historical_data where symbol_name = ?";
    List<Data> myList = new ArrayList(Data); 
    while(Rset.next())
                {
                    String current_day =  SgxRset.getString("current_day");
                    String open_val =  SgxRset.getString("open_val");
                    String high_val =  SgxRset.getString("high_val");
                    String low_val =  SgxRset.getString("low_val");
                    String close_val =  SgxRset.getString("close_val");

                    Data data = new Data(current_day,open_val,high_val,low_val,close_val);
                    myList.add(data);
                }

使用列表和toArray方法

String selectsql = "select current_day ,  open_val , high_val , low_val ,     close_val  from   historical_data where symbol_name = ?";

      List<String[]>resultData = new ArrayList<Stirng[]>();

        while(Rset.next())
                {
                    String[] array = new String[5];

                    array[0] =  SgxRset.getString("current_day");
                    array[1] =  SgxRset.getString("open_val");
                    array[2] =  SgxRset.getString("high_val");
                    array[3] =  SgxRset.getString("low_val");
                    array[4] =  SgxRset.getString("close_val");
                }

        Object[] arrayResultData = resultData.toArray();
String selectsql=“从历史数据中选择当前日期、打开值、高值、低值、关闭值,其中符号\名称=?”;
ListresultData=new ArrayList();
while(Rset.next())
{
String[]数组=新字符串[5];
数组[0]=SgxRset.getString(“当前日”);
数组[1]=SgxRset.getString(“open_val”);
数组[2]=SgxRset.getString(“高值”);
数组[3]=SgxRset.getString(“low_val”);
数组[4]=SgxRset.getString(“close_val”);
}
对象[]arrayResultData=resultData.toArray();

使用多维数组怎么样?我认为这不是数组的数组。它有一个字符串,其他为浮点值。如果不知道将有多少行,则不需要数组,因为无法调整数组大小-需要数组列表或类似的内容。您尝试过什么?你被卡在哪一部分?返回数组的JSON数组,用Java创建数据结构?还有什么?用Java创建一个数据结构,但仍然是如何从列表中构造这种类型的数组??请看我问题的编辑部分我已经创建了一个示例部分,我如何以google图表所期望的形式显示它??谢谢,但它同样知道erguant提到了什么??它有什么不同?是的,它是一样的,但是,当我写答案的时候,有人已经回答了。我认为,创建数组数组在这里是一个问题。您需要创建一个看起来像数组数组的字符串。我个人在谷歌可视化公司工作过。我想上面编辑的代码会对你有所帮助。谢谢!请告诉我发生了什么事!它创建了一个空数组[]
 String a = "[ ";
    for (int i = 0; i < myList.size(); i++) {
        String b = "[ \"" + myList.get(i).getCurrent_day() + "\" , "
                + myList.get(i).getOpen_val() + "],";
        if(i==myList.size() -1)
            a += b;
        else
            a += b+",";
    }
    a += " ]";
[ [ "2011-08-01" , 136.65],[ "2011-08-02" , 135.26] ]
String selectsql = "select current_day ,  open_val , high_val , low_val ,     close_val  from   historical_data where symbol_name = ?";

      List<String[]>resultData = new ArrayList<Stirng[]>();

        while(Rset.next())
                {
                    String[] array = new String[5];

                    array[0] =  SgxRset.getString("current_day");
                    array[1] =  SgxRset.getString("open_val");
                    array[2] =  SgxRset.getString("high_val");
                    array[3] =  SgxRset.getString("low_val");
                    array[4] =  SgxRset.getString("close_val");
                }

        Object[] arrayResultData = resultData.toArray();