Witamy wszystkich
Programuję swój program w języku JAVA, a mianowicie słownik, który skontaktuje się z bazą danych MYSQL.
W opcjach programu chcę stworzyć możliwość stworzenia samej bazy danych oraz tabel potrzebnych do projektu, które zostaną pobrane z pliku createBaza.sql.
Chciałbym uzyskać efekt w kodzie Java, który mogę uzyskać poprzez linię poleceń (cmd):
C:\> myql -u root -pMyPass < MyConfigFile.sql, która wstrzyknie do bazy danych polecenia pobrane z pliku MyConfigFile.sql, tutaj zawartość pliku createBaza.sql:
create database Music;
use Music;
create table MusicTable(name varchar(20) not null,autor varchar(20) not null);
grant all on *.* to yogi@localhost identified by 'babuuu' with grant option;
i utworzy bazę Music, tablice i user'a.
W javie napisałem formatkę z JButtonem, a po kliknięciu na przycisk wywołuje on metodę ActionListener() z Runtime.getRuntime().exec(), i chciałbym uzyskać efekt jak z linii poleceń czyli tworzenie bazy,tablic, użytkownika itp, tutaj 2 przykłady mojego kodu:
try {
String command = "cmd /k start mysql -u root -pMyPassword < date.sql";
process = Runtime.getRuntime().exec(command);
}catch(IOException exc){ JOptionPane.showMessageDialog(null,exc.getMessage()); }
oraz
File file = new File("C:/mysql/date.sql");
try {
String command = "cmd.exe /k start mysql -u root -pMyPassword";
Process process = Runtime.getRuntime().exec(command);
BufferedReader reader= new BufferedReader(new FileReader(file));
BufferedOutputStream writer = new BufferedOutputStream(new
DataOutputStream(process.getOutputStream()));
StringBuffer buffer = new StringBuffer();
String line;
while((line = reader.readLine()) != null){
buffer.append(line);
System.out.println("line = "+line);
}
writer.write(buffer.toString().getBytes());
writer.flush();
writer.close();
}catch(IOException exc){JOptionPane.showMessageDialog(null,exc.getMessage());}
Niestety moje próby nie przyniosły oczekiwanych rezultatów, ponieważ przedstawiony przeze mnie kod loguje się tylko do bazy danych MySql a chciałbym, aby przekierował polecenia z pliku MyConfigFile.sql, który utworzy bazę danych,tabele, usera.
Znalazł em rozwiązanie podobnego problemu pod adresem, ale niestety tam dane są zapisywane od strumienia do pliku, a w moim przypadku wygląda to odwrotnie.
I jeszcze jedno pytanie dotyczące linku, czy przykład z podlinkowanej strony musi wykorzystywać wielowątkowość aby działał, ja nie wykorzystałem tego mechanizmu ale nie sądzę aby tu tkwił problem, proszę o szczegółowe wyjaśnienia.
Jestem początkującym programistą, więc będę wdzięczny za wszelką pomoc.
Pozdrawiam.