0

我想将 xml 解析为 mysql 表我能够解析 xml 但我不熟悉 mysql。有任何想法吗?提前致谢。

+------+------+
|drinks|stater|
+------+------+
|some  |some  |
+------+------+
|some  |some  |
+------+------+

我想要的结果的例子。xml文件示例:

<?xml version="1.0"?>
<food>
    <menu>
        <drinks>some drinks</drink>
        <starter>some food</starter>
        <main>more food</main>
        <dessert>more food/dessert>
    </menu>
    <menu>
        <drinks>some drinks</drink>
        <starter>some food</starter>
        <main>more food</main>
        <dessert>more food/dessert>
    </menu>
</food>

到目前为止,这就是我所拥有的

public class xmlToMySql extends DefaultHandler {

public static void main(String argv[]){

    try {

    SAXParserFactory factory = SAXParserFactory.newInstance();
    SAXParser saxParser = factory.newSAXParser();

    DefaultHandler handler = new DefaultHandler() {

    boolean drinks = false;
    boolean starter = false;

    public void startElement(String uri, String localName,String qName, 
                Attributes attributes) throws SAXException {

        if (qName.equalsIgnoreCase("DRINKS")) {
            drinks = true;

        }

        if (qName.equalsIgnoreCase("STARTER")) {
            starter = true;
        }

    }

    public void characters(char ch[], int start, int length) throws SAXException {

        if (drinks) {
            String hnName = new String(ch,start,length);
            drinks = false;

        }
        if (starter) {
            String ptStr = new String(ch,start,length);
            starter = false;
        }
    }
    };

       saxParser.parse("someXmlFile.xml", handler);

     } catch (Exception e) {
       e.printStackTrace();
     }
 }

}
4

1 回答 1

0

如果您解析值并将其存储到变量中,则使用以下 java 代码

 Class.forName("com.mysql.jdbc.Driver");
 String connectionString="jdbc:mysql://localhost:3306/DbName";
 Connection connection = DriverManager.getConnection(connectionString,username,password);

PreparedStatement pst;
ResultSet rs;
while(number of entries you want to enter)
{
   pst=connection.prepareStatement("insert into tablename values(?,?)");
   pst.setString(1,drinks);
   pst.setString(2,starter);
   pst.executeUpdate();
}
于 2012-10-11T10:14:38.157 回答