sql >> データベース >  >> RDS >> Mysql

繰り返されるフィールドを含むオブジェクトをJSONに変換します

    GoogleのGson を使用できます この場合:

    public String getJSONFromResultSet(ResultSet rs, String key) {
        Map json = new HashMap();
        List list = new ArrayList();
        if (rs != null) {
            try {
                ResultSetMetaData mData = rs.getMetaData();
                while (rs.next()) {
                    Map<String, Object> columns = new HashMap<String, Object>();
                    for (int columnIndex = 1; columnIndex <= mData.getColumnCount(); columnIndex++) {
                        if (rs.getString(mData.getColumnName(columnIndex)) != null) {
                            columns.put(mData.getColumnLabel(columnIndex),
                                    rs.getString(mData.getColumnName(columnIndex)));
                        } else {
                            columns.put(mData.getColumnLabel(columnIndex), "");
                        }
                    }
                    list.add(columns);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            json.put(key, list);
        }
        return new Gson().toJson(json);
    }
    

    更新: getJSONFromResultSetを呼び出すことができます 以下のような方法:

    Connection con = DBConnectionClass.myConnection();
            PreparedStatement ps = con.prepareStatement("SELECT * FROM Customer");
          //as an example consider a table named Customer in your DB.
            ResultSet rs = ps.executeQuery();
            System.out.println(getJSONFromResultSet(rs, "customer"));
    


    1. ビルドバージョンを保存するSQLデータ型

    2. where句があってもSELECTCOUNT(*)は遅い

    3. mySQLで外部キーを削除できません

    4. ユーザーがフィールドを定義できる場合のスキーマ設計