import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
// 使用dom4j无限层次解析xml字符串
public class BootXml {
// 解析xml
Map<String,String> entity=new HashMap<String, String>();
public Map xmlParse(String src){
try {
SAXReader reader=new SAXReader();
Document doc = reader.read(new File(src));
// Document doc=DocumentHelper.parseText(src); System.out.println("3");
// 获得跟节点
Element rootElement=doc.getRootElement();
// 得到所有第一节子节点
List<Element> eles=rootElement.elements();
for(int i=0;i<=eles.size();i++){
getsubele(eles.get(i));
}
} catch (Exception e) {
// TODO: handle exception
}
return entity;
}
private void getsubele(Element element) {
// 判断该节点是不是父节点
if(ishassubele(element)){
List<Element> ele=element.elements();
for(int j=0;j<ele.size();j++){
getsubele(ele.get(j));
}
}else{
// System.out.println("key="+element.getName()+" value="+element.getText());
entity.put(element.getName(), element.getText());
return;
}
}
public boolean ishassubele(Element e){
return !e.isTextOnly();
}
public static void main(String[] args) {
Map<String,String> entity= new BootXml().xmlParse("001.xml");
int r=-1;
String sql = "insert into student (id,name) values(?,?)";
Connection conn = DbUtil.openConn();
try {
PreparedStatement preStmt = DbUtil.getPreparedStatement(conn, sql);
preStmt.setString(1, (String) entity.get("key_id"));
preStmt.setString(2, (String) entity.get("key_name"));
int i = preStmt.executeUpdate();
if(i>0){
r=1;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("rrrrrrrrrrrrrrrrrrrrr:"+r);
//System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}
//数据库公共方法
-----------------------------------------------------------------------------
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class DbUtil {
//private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//2005
private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//2000
private static Connection conn;
private static String userName = "scott";
private static String password = "12345";
private static Statement stmt;
private static PreparedStatement preStmt;
private static String url = "jdbc:sqlserver://localhost:1433;databaseName=bysj";
public static Connection openConn(){
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,userName,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static Statement getStatement(Connection conn)throws Exception{
if(conn!=null)
{
return conn.createStatement();
}
return null;
}
public static PreparedStatement getPreparedStatement(Connection conn,String sql) throws Exception{
if(conn!=null){
return conn.prepareStatement(sql);
}
return null;
}
public static void closeResource() throws Exception{
if(conn!=null){
conn.close();
}
if(stmt!=null){
stmt.close();
}
if(preStmt!=null){
preStmt.close();
}
}
}
利用dom4j 解析xml 文档并将数据存入数据库
最新推荐文章于 2021-02-16 03:05:00 发布