import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import java.io.File;
public class xml extends HttpServlet{
public void doGet(HttpServletRequest kysimus, HttpServletResponse vastus) throws IOException, ServletException{
int x;
String pass, user, tabel;
PrintWriter valja = vastus.getWriter();
valja.println("
.o0|Backup|0o.");
valja.println("Andmebaasi backup
");
//KASUTAJANIME JA PAROOLI KÜSIMINE (KUI NEID VEEL POLE)
user=kysimus.getParameter("u");
pass=kysimus.getParameter("p");
if(user!=null && pass!=null && user.length()!=0 && pass.length()!=0){
valja.println("Vali tabel
");
}else{valja.println("Õigused puuduvad");}
//ANDMETE VASTUVÕTT
tabel=kysimus.getParameter("tabel");
if (tabel!=null && tabel.length()!=0){
switch (x = Integer.parseInt(tabel)){
case 1:
case 2:
valja.println(kirjutaXML("Esitajad", pass, user));
if(x!=1){break;}
case 3:
valja.println(kirjutaXML("Palad", pass, user));
if(x!=1){break;}
case 4:
valja.println(kirjutaXML("Stiilid", pass, user));
if(x!=1){break;}
case 5:
valja.println(kirjutaXML("Plaadid", pass, user));
if(x!=1){break;}
}
}
valja.println("
TAGASI");
valja.println("");
}
public String kirjutaXML(String tabel, String pass, String user){
Document doc;
Element juur, column, obj;
Connection cn=null;
ResultSet rs;
ResultSetMetaData rsmd;
Statement st;
boolean yhendus=false;
int mitmus;
if(tabel.compareTo("Esitajad")==0 || tabel.compareTo("Palad")==0){mitmus=1;}else{mitmus=2;}
if(user!=null && pass!=null && user.length()!=0 && pass.length()!=0){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection("jdbc:odbc:plaadikogu", user, pass);
if(!cn.isClosed()){yhendus=true;}
}catch(Exception e){return "Viga ühendue loomisel: "+e;}
if(yhendus==true){
try{
st=cn.createStatement();
rs=st.executeQuery("SELECT * FROM "+tabel);
rsmd=rs.getMetaData();
doc=DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
juur=doc.createElement(tabel);
doc.appendChild(juur);
while(rs.next()!=false){
obj=doc.createElement(tabel.substring(0, tabel.length()-mitmus));
for(int i=1; i<=rsmd.getColumnCount(); i++){
column=doc.createElement(rsmd.getColumnName(i));
column.appendChild(doc.createTextNode(rs.getString(rsmd.getColumnName(i))));
obj.appendChild(column);
}
juur.appendChild(obj);
}
}catch(Exception e){return "Tekkis viga: "+e;}
}else{return "Viga ühenduses baasiga!";}
try{
Transformer t=TransformerFactory.newInstance().newTransformer();
t.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(tabel+".xml")));
}catch(Exception e){return "Viga xml faili loomisel!";}
}
try{cn.close();}catch(Exception e){return "Tekkis viga: "+e;}
return "Loodi edukalt fail: "+tabel+".xml!";
}
}