将一份xml文件通过java 导入mysql数据库,编程工具:eclipse
xml文件如下:
位置:C:\Users\hh\Desktop\test\data.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<CreateTime>1</CreateTime>
<Question>王者荣耀</Question>
<Category>1</Category>
<Place>小乔</Place>
<Type>小乔,要努力变强</Type>
</xml>
需要向工作空间添加jar包:dom4j-1.6.1.jar 和jaxen-1.1.6.jar
我用servlet写的java文件,如下:
package servletTest;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* Servlet implementation class xmltest3
*/
@WebServlet("/xmltest3")
public class xmltest3 extends HttpServlet {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
String driverName="com.mysql.jdbc.Driver";
String dbURL="jdbc:mysql://127.0.0.1:3306/你自己的mysql数据库名?seUnicode=true&characterEncoding=UTF-8";//?seUnicode=true&characterEncoding=UTF-8 用来解决mysql中文乱码问题
String userName="你自己的登录名";
String userPwd="你自己的密码";
Connection dbConn;
String sql="insert into xmltest3(CreateTime, Question, Category, Place,Type) values (?, ?, ?, ?,?)";
try
{
Class.forName(driverName);//加载JDBC驱动程序
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);//建立驱动程序与数据库之间的链接
Statement stmt=dbConn.createStatement();//利用连接对象dbConn创建Statement接口对象stmt
java.sql.PreparedStatement pstmt=dbConn.prepareStatement(sql);
Document doc=new SAXReader().read(new File("C:/Users/guodai/Desktop/haha/haha.xml"));
List itemList=doc.selectNodes("XML");//选择xml文件的节点
for(Iterator iter=itemList.iterator();iter.hasNext();){
Element el=(Element)iter.next();
//读取节点内容
String createtime=el.elementText("CreateTime");
String question = el.elementText("Question");
String category = el.elementText("Category");
String place = el.elementText("Place");
String type = el.elementText("Type");
//为sql语句赋值
pstmt.setString(1, createtime);
pstmt.setString(2, question);
pstmt.setString(3, category);
pstmt.setString(4, place);
pstmt.setString(5, type);
pstmt.addBatch();
}
pstmt.executeBatch();
System.out.print("将XML导入数据库成功");
System.out.print(pstmt);
dbConn.close();
}
catch (Exception e) {
e.printStackTrace();
System.out.print("返回结果失败");
}
}
}