0

Web サービスでクエリ結果を取得し、それをクライアント サービスに送信します。これを使用して結果を XML に変換しました。

   try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(url + dbName, userName, password);

        Statement st = conn.createStatement();
        ResultSet rs;
        rs = st.executeQuery("SELECT * FROM  information_schema.collations where id like '%84%'");

        ResultSetMetaData rsmd = rs.getMetaData();
        int colCount = rsmd.getColumnCount();

        while (rs.next()) {
            Element row = doc.createElement("Row");
            results.appendChild(row);
            for (int i = 1; i <= colCount; i++) {
                String columnName = rsmd.getColumnName(i);
                Object value = rs.getObject(i);
                Element node = doc.createElement(columnName);
                node.appendChild(doc.createTextNode(value.toString()));
                row.appendChild(node);
            }
        }
        DOMSource domSource = new DOMSource(doc);
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer = tf.newTransformer();
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
        transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
        StringWriter sw = new StringWriter();
        StreamResult sr = new StreamResult(sw);
        transformer.transform(domSource, sr);

        System.out.println(sw.toString());

        conn.close();
        rs.close();

    } catch (SQLException e) {
        throw new RuntimeException("Could not get connection", e);
    }

これは正しい方法と見なされますか?クライアントサービスに送信する方法は?それを表にどう表示するか。

4

1 に答える 1

0

これが正しい方法である場合、解決しようとしている問題に大きく依存します。

通常、データベース テーブルを XML ドキュメントに一般的な方法でマッピングすることは、XML のあまり適切な使用方法ではありません (また、ISO-8859-1 エンコーディングが本当に必要なものであることを確認してください。また、このアプリケーションがさまざまな言語をカバーするデータで実行されることを期待していません)。

構造や関係などでオブジェクトを定義することで、さらに多くのことを達成できます。データをより適切な方法で表すオブジェクト構造が既にある場合は、それらのデータ構造を XML にマップできるライブラリもいくつかあります (たとえば、JAXB または XStream は、XML シリアライゼーションによく使用される 2 つのライブラリです)。

あなたが達成しようとしていることをもっと説明してください。そうすれば、より良い答えが得られるかもしれません。

于 2013-11-14T08:28:00.770 に答える