保存xml数据到数据库的程序实现 | ||||||
---天楠 2005-11-24 | ||||||
数据库是现在使用非常普及的数据存储工具。由于技术的成熟,对于新兴的XML技术我们如果和数据库结合起来的话将使我们的使用范围更广, | ||||||
同时我们也能从中受益。下面是怎样从把XML文档里的数据读到数据库中,这里在ACCESS数据库建立表XMLTODB表。 | ||||||
字段如下(都为文本型,其他形式也可以但在写SQL语句时修改一下就可): | ||||||
表1:数据库XMLTOD表设计 | ||||||
ID | 学号 | 姓名 | 性别 | 年龄 | 电话 | 备注 |
自动编号 | 学生编号 | 学生姓名 | 性别 | 学生年龄 | 电话 | 学习层次 |
数据库中建立好表后,我们编写把XML文档数据转换到数据库中的程序。在这个程序中用到了SQL技术和JDBC技术, | ||||||
当然JDOM接口技术不可缺少。其实现程序如下: | ||||||
import java.io.*; | ||||||
import java.sql.*; | ||||||
import org.jdom.*; | ||||||
import org.jdom.input.*; | ||||||
import org.jdom.input.SAXBuilder.*; | ||||||
import java.io.*; | ||||||
import java.sql.*; | ||||||
import org.jdom.*; | ||||||
import org.jdom.input.*; | ||||||
import org.jdom.input.SAXBuilder.*; | ||||||
public class xmltodb { | ||||||
public static void main(String args[]) throws Exception{ | ||||||
SAXBuilder sb = new SAXBuilder(); | ||||||
Document doc = sb.build(new FileInputStream(" ChangedXML.xml")); | ||||||
Element root = doc.getRootElement(); //获 取根元素 | ||||||
int i=0; i=root.getContentSize(); | ||||||
int i=0; i=root.getContentSize(); | ||||||
java.util.List students = root.getChildren(); | ||||||
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); | ||||||
//建立数据库连 接 | ||||||
Connection con= DriverManager.getConnection ("jdbc:odbc:Demo"); | ||||||
Statement stmt=con.createStatement(); | ||||||
for(int j=0;j<i;j++){ | ||||||
//得到第j个student元素 | ||||||
Element student = (Element) students.get(j); | ||||||
Element id = student.getChild("ID"); //得到指定的子元素 | ||||||
String id1=id.getText(); | ||||||
Element xuehao = student.getChild("学号"); | ||||||
String xuehao1=xuehao.getText(); | ||||||
Element xingming = student.getChild("姓名"); | ||||||
String xingming1=xingming.getText(); | ||||||
Element xingbie= student.getChild("性别 "); | ||||||
String xingbie1=xingbie.getText(); | ||||||
Element age = student.getChild("年龄 "); | ||||||
String age1=age.getText(); | ||||||
Element phone = student.getChild("电话 "); | ||||||
String phone1=phone.getText(); | ||||||
Element beizhu = student.getChild("备 注"); | ||||||
String beizhu1=beizhu.getText(); | ||||||
System.out.println("学号是"+xuehao1+"的XML文档ChangedXML.xml中的数据被录 入数据 库 XMLTODB表中"); | ||||||
String | ||||||
sql="insert into XMLTODB values('"+id1+" ','"+xuehao1+"','"+xingming1+"','"+xingbie1+"','"+age1+"','"+phone1+"','"+beizhu1+"')"; | ||||||
stmt.executeUpdate(sql); | ||||||
} | ||||||
stmt.close(); con.close(); | ||||||
} | ||||||
} |