0

私はテーブルを持っています

Country       State

 USA           Texas
 USA           Alasca
 India         Delhi
 India         Bombay
 India         Madras
 Russia        Mosco
 Russia        Petersberg
 Germany       Berlin
 China         Beijing
 China         Tibet
 Turkey        Antioch

これらのアイテムを国と州の 2 つの選択ボックスに表示する必要があります。国選択ボックスから米国を選択すると、州選択ボックスにテキサスとアラスカが表示されます。したがって、Jsonオブジェクトを次のように作成する必要があります

 [{Country:USA, State:{{statename:Texas},{statename:Alasca}}},
 {Country:India, State:{{statename:Delhi}, {statename:Bombay}, {statename:Madras}}},
  {Country:Germany, State:{{statename:Berlin}},
{Country:Russia, State:{{statename:Mosco},{statename:Petersberg}}},
{Country:China, State:{{statename:Beijing}, {statename:Tibet}}},
 {Country:turkey, State:{{statename:Antioch}}}
 ]

現在、国と州を別々に取得するために 2 つの別々の SQL を使用しています。JavaクラスCountryを次のように使用します

public class Country implements Serializable {

String country;



public String getCountry() {
    return country;
}


public void setCountry(String country) {
    this.country = country;
}

 }

そして私はDAOを

  public List<Country>  extractData(ResultSet rs) throws SQLException,
        DataAccessException {
    List<Country> list = new ArrayList<Country>();

    while (rs.next()) {
        Country obj = new Country();
        obj.setCountry(rs.getString(1).trim());

        list.add(obj);
    }

    return list;
   }

オブジェクトを次のように取得します。

[{country:USA}, {country:India}, {country:Germany}, {country:Russia}, {country:China}, {country:turkey}]

同様に、状態のクラスとデータを抽出するコードを作成し、状態を次のように取得します

         [ {state:Texas} {state:Alasca}, {state:Delhi}, {state:Bombay},     {state:Madras}, {state:Berlin}, {state:Mosco}, {state:Petersberg} {state:Beijing}, {state:Tibet}, {state:Antioch}]

これは、選択ボックスに個別に表示できます。

しかし、選択ボックスに正しく表示するには、次の方法でオブジェクトが必要です。

  [{Country:USA, State:{{statename:Texas},{statename:Alasca}}},
 {Country:India, State:{{statename:Delhi}, {statename:Bombay}, {statename:Madras}}},
  {Country:Germany, State:{{statename:Berlin}},
{Country:Russia, State:{{statename:Mosco},{statename:Petersberg}}},
{Country:China, State:{{statename:Beijing}, {statename:Tibet}}},
 {Country:turkey, State:{{statename:Antioch}}}
 ]

次のようにJavaクラスを作成できます。

 class CountryState{
    string country;
    List <State> state;

    public String getCountry()
    {
        return country;
    }

    public void setCountry(String country){
        this.country=country;
    }

    public List<State> getState(){
        return state;
    }

    public void setState(List<State> state)
    {
     this.state.add(state);
     }
    }

    class State{
    String statename;

    public String getStatename()
    {
    return statename;
    }

    public void setStatename(String statename){
    this.statename=statename;
    }

結果セットの値をそのようなオブジェクトに格納し、目的の JSON オブジェクトを生成する方法を知る必要があります。

4

1 に答える 1

0

データベースから取得したデータ オブジェクトの Java で pojo を作成し、GSON や Jackson を使用できるように、その pojo で JSON コンバーター ライブラリを使用します。

ヒント : 国別にグループ化するようにクエリを変更する必要がある場合や、1 つの国にマップされた州のコレクションが必要になる場合があります。

于 2015-10-08T14:54:57.457 に答える