package gr.ntua.ivml.mint.oaiexporter;
import java.sql.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import gr.ntua.ivml.mint.xml.FullBean;
public class DBExport {
private static Connection conn = null;
private static String username = "root";
private static String password = "raistlin";
private static String url = "jdbc:mysql://localhost/vaoai";
private static PreparedStatement s;
static{
try {
Class.forName ("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection (url, username, password);
s = conn.prepareStatement("INSERT INTO athenaoai_records (" +
"provider, url, enterdate, oai_identifier, oai_set, datestamp, europeanaType," +
"europeanaisShownAt, europeanaisShownBy, europeanaObject, europeanaProvider, dcCoverage, dcContributor, " +
"dcDescription, dcCreator, dcDate, dcFormat, dcIdentifier, dcLanguage, dcPublisher, dcRights, dcSource," +
"dcSubject, dcTitle, dcType, dctermsAlternative, dctermsCreated, dctermsMedium,dctermsExtent) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void addAsset(ArrayList<FullBean> data,String prov){
try {
Iterator<FullBean> itr = data.iterator();
FullBean tmp = null;
while(itr.hasNext()){
tmp = itr.next();
String[] tmpVal = null;
String val = "";
//s = conn.prepareStatement("INSERT INTO athenaoai_records (" +
// "provider, url, enterdate, oai_identifier, oai_set, datestamp, europeanaType," +
// "europeanaisShownAt, europeanaisShownBy, europeanaObject, europeanaProvider, dcCoverage, dcContributor, " +
// "dcDescription, dcCreator, dcDate, dcFormat, dcIdentifier, dcLanguage, dcPublisher, dcRights, dcSource," +
// "dcSubject, dcTitle, dcType, dctermsAlternative, dctermsCreated, dctermsMedium,dctermsExtent) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
s.setString(1, "Athena");
s.setString(2, null);
s.setString(3, null);
s.setString(4, prov+"_"+Long.toString(System.currentTimeMillis()));
String set = prov + ";"+"AugustIngestion";
s.setString(5, set);
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
java.util.Date date = new java.util.Date();
s.setString(6,dateFormat.format(date));
//System.out.println(dateFormat.format(date));
//s.setDate(6, dateFormat.parse(dateFormat.format(date)));
//s.setString(6, null);
s.setString(7, tmp.getEuropeanaType());
tmpVal = tmp.getEuropeanaisShownAt();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(8, val);
}else{
s.setString(8, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getEuropeanaisShownBy();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(9, val);
}else{
s.setString(9, null);
}
tmpVal = null;
val = "";
//s.setString(10, null);
tmpVal = tmp.getEuropeanaObject();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(10, val);
}else{
s.setString(10, null);
}
tmpVal = null;
val = "";
s.setString(11, "Athena");
tmpVal = tmp.getDcCoverage();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(12, val);
}else{
s.setString(12, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcContributor();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(13, val);
}else{
s.setString(13, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcDescription();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(14, val);
}else{
s.setString(14, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcCreator();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(15, val);
}else{
s.setString(15, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcDate();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(16, val);
}else{
s.setString(16, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcFormat();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(17, val);
}else{
s.setString(17, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcIdentifier();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(18, val);
}else{
s.setString(18, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcLanguage();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(19, val);
}else{
s.setString(19, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcPublisher();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(20, val);
}else{
s.setString(20, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcRights();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(21, val);
}else{
s.setString(21, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcSource();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(22, val);
}else{
s.setString(22, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcSubject();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(23, val);
}else{
s.setString(23, null);
}
//s.execute();
//System.out.println(val);
tmpVal = null;
val = "";
tmpVal = tmp.getDcTitle();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(24, val);
}else{
s.setString(24, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDcType();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(25, val);
}else{
s.setString(25, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDctermsAlternative();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(26, val);
}else{
s.setString(26, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDctermsCreated();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(27, val);
}else{
s.setString(27, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDctermsMedium();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(28, val);
}else{
s.setString(28, null);
}
tmpVal = null;
val = "";
tmpVal = tmp.getDctermsExtent();
for(int i = 0; i < tmpVal.length;i++){
if( (i == 0) && (tmpVal[i] != null)){
val = tmpVal[i];
}else
if(tmpVal[i] != null){
val += ";"+tmpVal[i];
}
}
if(val.length() > 1){
s.setString(29, val);
}else{
s.setString(29, null);
}
tmpVal = null;
val = "";
s.execute();
}
//s.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}