package javaMyAdmin.db;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
public class Database {
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
// //Variablen
/**/private ArrayList
table = new ArrayList();
/**/private String dbname;
/**/private Connection connect;
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
// //Constructor
/**/public Database(String dbname) throws SQLException {
/**/this.dbname = dbname;
/**/connect = DBManager.doConnection(dbname);
/**/}
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
// //Methoden
/**/public void loadTables() throws SQLException {
table.clear();
DatabaseMetaData md = connect.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
String name = rs.getString(3);
ResultSet rs2 = connect.createStatement().executeQuery("SELECT * FROM `" + name + "`");
ArrayList columns = new ArrayList();
ResultSetMetaData metaData = rs2.getMetaData(); // fehler hier irwo
int i = 1;
int count = metaData.getColumnCount();
while (i < count + 1) {
columns.add(metaData.getColumnName(i));
i++;
}
table.add(new Table(name, columns, connect));
}
}
/**/public ArrayList getTable() throws SQLException {
loadTables();
return table;
}
/**/public Table getTable(int tableNumber) throws SQLException {
if (table.isEmpty())
loadTables();
return table.get(tableNumber);
}
public Table getTable(String name) throws SQLException {
Table t = null;
if (table.isEmpty())
loadTables();
int i = 0;
for (Table lst : table) {
if (lst.getName().equalsIgnoreCase(name)) {
break;
}
i++;
}
try {
t = table.get(i);
} catch (Exception e) {
System.out.println(e);
}
return t;
}
/**/public String getDbname() {
return dbname;
}
/**/public void setDbname(String dbname) {
this.dbname = dbname;
}
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
/* test */public void addTable(String tablename, ArrayList titles, ArrayListdatatypes, ArrayList length, ArrayList check, ArrayList index) throws Exception{
String cmd = "";
String checknull = "";
String komma = ",";
for(int i = 0; i < titles.size(); i++){
if(i == titles.size() -1 ){
komma = "";
}
if(check.get(i) == true){
checknull = "DEFAULT NULL";
}else{
checknull = "NOT NULL";
}
cmd += "`" + titles.get(i) + "` " + datatypes.get(i) + "(" + length.get(i) + ") " + checknull + komma + "\n";
}
System.out.println(cmd);
cmd = "CREATE TABLE " + /*IF NOT EXISTS + */ "`" + tablename + "` ( "+ cmd +
") ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;\n";
try{
connect.createStatement().executeUpdate(cmd);
}catch(Exception e){
System.out.println(e);
}
for(int i = 0; i < index.size(); i++){
if(index.get(i).equals("PRIMARY")){
connect.createStatement().executeUpdate("ALTER TABLE `"+ tablename + "`"+
" ADD PRIMARY KEY(`"+titles.get(i)+"`);");
}
}
}
}