xml

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;


public class SaxHandler extends DefaultHandler {
private List<Article> articleList = new ArrayList<>();
private Article article = null;
private int current = 0;


Connection con = null;
Statement sql = null;
ResultSet rs = null;


@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
switch (qName) {
case "article":
article = new Article();
current = 0;
break;
case "author":
current = 1;
break;
case "title":
current = 2;
break;
case "pages":
current = 3;
break;
case "year":
current = 4;
break;
case "volume":
current = 5;
break;
case "journal":
current = 6;
break;
case "number":
current = 7;
break;
case "ee":
current = 8;
break;
case "url":
current = 9;
break;
}
}


@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String content = new String(ch, start, length);
String msg = content.replaceAll("[-:\\s]", "");
if (!msg.equals("")) {
switch (current) {
case 1:
String author = article.getAuthor();
if (author != null) {
msg = author + ", " + msg;
}
article.setAuthor(msg);
break;
case 2:
article.setTitle(msg);
break;
case 3:
article.setPages(msg);
break;
case 4:
article.setYear(Integer.parseInt(msg));
break;
case 5:
article.setVolume(Integer.parseInt(msg));
break;
case 6:
article.setJournal(msg);
break;
case 7:
article.setNumber(msg);
break;
case 8:
article.setEe(msg);
break;
case 9:
article.setUrl(msg);
break;
}
}


}


@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
if (qName.equals("article")) {
try {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  
                String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=mydb"; 
             String userName = "root";
              String userPwd = "12345";  
              Class.forName(driverName);
             con = DriverManager.getConnection(dbURL, userName, userPwd);
sql = con.createStatement();
String s = "insert into article (author,title,pages,year,volume,journal,number,ee,url) values ('"
+ article.getAuthor() + "','" + article.getTitle() + "','" + article.getPages() + "','"
+ article.getYear() + "','" + article.getVolume() + "','" + article.getJournal() + "','"
+ article.getNumber() + "','" + article.getEe() + "','" + article.getUrl() + "')";
sql.executeQuery(s);
}  catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}


}
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值