Я пытаюсь вставить файл XML в базу данных SQL-сервера, но до сих пор не знаю, что случилось с моим кодом ниже.Как вставить XML-файл NodeValue в базу данных SQL-сервера?
Мои имена узлов XML: автор, название, жанр, цена, publish_date, описание.
Получив указанные имена узлов, я хочу создать столбцы в моей таблице базы данных, чтобы я мог вставлять значения узлов в столбцы.
Мой XML файл выглядит следующим образом:
<?xml version="1.0"?>
<Results>
<Row>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</Row>
<Row>
<author>Corets, Eva</author>
<title>Maeve Ascendant</title>
<genre>Fantasy</genre>
<price>5.95</price>
.
.
.
.
.
</Row>
</Results>
Java Код для вставки в базу данных:
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection con = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;user=joy\studentsdatabaseName=EMPLOYEEintegratedSecurity=t rue;");
Statement st=con.createStatement();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("d:/books.xml");
NodeList n1= doc.getElementsByTagName("Row");
for(int i=0;i<n1.getLength();i++){
String st1= n1.item(i).getFirstChild().getNodeValue();
System.out.println(st1); // i dont know why it doesnt print anything ?
st.executeUpdate("insert into checktbl(sub)values('"+st1+"')");
}
}
catch(Exception e){
e.printStackTrace();
}
oh yes gerrytan Я сделал изменение, которое вы сказали, но теперь он печатает нуль – stom