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();
}
}
}
}
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();
}
}
}
}