Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> окно MySQL Client из java 
V
    Опции темы
viktorrrrrr
Дата 15.7.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



всем привет подскажите как можно вызвать окно MySQL Client из java
PM MAIL   Вверх
viktorrrrrr
Дата 1.9.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



подскажите почему не работает
Код:
Код

public class Exe {
   
   String url = "jdbc:mysql://localhost/adresse";
   String user = "root";
   String pass = "natali"; 
   Connection conn = null;
       {
           try
           {   
              Class.forName("com.mysql.jdbc.Driver").newInstance();
             conn = DriverManager.getConnection(url, user, pass);
             
             System.out.println("Verbunden+++");
             
               Runtime rt = Runtime.getRuntime();
               Process proc = rt.exec("C:\\Programme\\MySQL\\MySQL Server 5.0\\bin\\mysql.exe");
               int exitVal = proc.exitValue();
               System.out.println("Process exitValue: " + exitVal);
           } catch (Throwable t)
             {
               t.printStackTrace();
             }
       }


Это сообщение отредактировал(а) powerOn - 1.9.2008, 16:33
PM MAIL   Вверх
cube
Дата 1.9.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



попробуй так на примере этого запустишь и другие проги ;)

Код

public class Test {
  public static void main(String[] args) throws Exception {
    Process p = Runtime.getRuntime().exec(
       "\"c:/program files/windows/notepad.exe\"");
    p.waitFor();
  }
}


а это тебе зачем? (драйвер в твоем примере можно и не подключать)

Код

   String url = "jdbc:mysql://localhost/adresse";
   String user = "root";
   String pass = "natali"; 
   Connection conn = null;
....
Class.forName("com.mysql.jdbc.Driver").newInstance();
             conn = DriverManager.getConnection(url, user, pass);


PM MAIL   Вверх
viktorrrrrr
Дата 2.9.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



ne hochet niwkakuju sapuskat
Код

package proekt;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.*;
import java.io.*;

public class Exe {
     
     {    
         try
            {   
             
            Process p = Runtime.getRuntime().exec("\"c:/Programme/MySQL/MySQL Server 5.0/bin/mysql.exe\"");        
                 int exitVal = p.waitFor();
                System.out.println("Process exitValue: " + exitVal);
            } catch (Throwable t)
              {
                t.printStackTrace();
              }
        }
    }    
        

a eto rabotaet

Код

Process p = Runtime.getRuntime().exec("\"C:/Programme/Navicat 8.0 MySQL/navicat.exe\"");


 



Это сообщение отредактировал(а) viktorrrrrr - 2.9.2008, 12:17
PM MAIL   Вверх
cube
Дата 2.9.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Это не в твоей программе дело, попробуй запустить сначала просто с консоли, с командной строки свою строчку "c:/Programme/MySQL/MySQL Server 5.0/bin/mysql.exe"
И помни что mysql.exe должен запускаться с ключами -h -u -p (а как это и зачем это почитай вот здесь http://www.mysql.ru/docs/spichekov/)
т.е. для примера вот так "c:/Programme/MySQL/MySQL Server 5.0/bin/mysql.exe -h 192.168.1.2 -u root -p" если конечно не ошибаюсь

Кстати, можно вопрос зачем тебе это? 
PM MAIL   Вверх
viktorrrrrr
Дата 2.9.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



blagodarju  za pomosch , mne nugno iz swoej programmi zapustit okno  MySQl Dialoga dlja importa .csv ja konechno ponimaju chto eto mogno sdelat iz Java no poka ne snaju kak
PM MAIL   Вверх
cube
Дата 3.9.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Цитата(viktorrrrrr @ 2.9.2008,  21:04)
blagodarju  za pomosch , mne nugno iz swoej programmi zapustit okno  MySQl Dialoga dlja importa .csv ja konechno ponimaju chto eto mogno sdelat iz Java no poka ne snaju kak

Я понял, тебе нужно как ты говоришь "окно MySQL клиента для импорта файла .cvs"  в базу данных...

Знаешь, если ты пишешь аплоадер или какой-то модуль, метод для загрузки данных в БД, то ты можешь это сделать это в своей программе без использования посторонних средств (например без MySQL клиента)

например следующая часть кода:
Код

      FileInputStream fis = new FileInputStream("in/price.csv");
      //BufferedReader in = new BufferedReader(new InputStreamReader(fis));
      BufferedReader in = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
      
      String str;
      while ((str = in.readLine()) != null) 
      {
        String[] arr = str.split(";");
        System.out.println(arr[0] + "|" + arr[1] + "|" + arr[n]); //так можешь посмотреть правильно ли разбирается файл
      }


Читает твой файл price.csv с каталога in расположенного в одной директории с твоей программой в кодировке UTF-8, и разбирает используя разделитель ";"
Таким образом при каждой итерации цикла ты будешь получать новый массив с данными, ты можешь написать INSERT запрос в базу данных вставить в него значения и таким образом у тебя будет свой аплоадер, намного универсальней, чем тот стандартный который использует MySQL клиент

Например:
Код


      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // твой драйвер
      Connection con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=in/KKMDBase2000.mdb","",""); // твое соединение с базой данных
      PreparedStatement stmt = con.prepareStatement("INSERT INTO таблица (поле1,поле2) VALUES (?,?)"); // твой запрос

      FileInputStream fis = new FileInputStream("in/price.csv"); // твой файл
      BufferedReader in = new BufferedReader(new InputStreamReader(fis));
      
      String str;
      while ((str = in.readLine()) != null) 
      {
        String[] arr = str.split(";"); // разделитель который используется для разделения данных например: корова;собака;хвосты
        stmt.setString(1, arr[0]); // корова
        stmt.setString(2, arr[1]); // собака
        int count = stmt.executeUpdate(); // в базу данных отправиться запрос типа INSERT INTO таблица (поле1,поле2) VALUES ("корова","собака")
        System.out.println(count); // возвратит тебе значение, сколько позиций было изменено или добавлено в таблицу базы данных после выполнения запроса, короче если возвратит 1 значит 1 строка добавидась в таблицу
      }


Если не понятно здесь, то поищи в нете что нибудь о PreparedStatement - очень много информации по этому найдешь, удачи
PM MAIL   Вверх
viktorrrrrr
Дата 3.9.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



 poluchaetsja chto to ne to

Код

import java.sql.*;
import java.io.*;

public class Import extends JFrame {
String str;
public void baseCon() {
        
            
                
           try {
               
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(url, user, pass);
        
        System.out.println("Verbunden+++");
         
         PreparedStatement stmt = conn.prepareStatement("update strasse  set str_id = ?,STR_NAME =?,N_STRNAME =? "); 
          FileInputStream fis = new FileInputStream("in/strasse.csv"); 
          BufferedReader in = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
          
          
          while ((str = in.readLine()) != null) 
          {
            String[] arr = str.split(","); 
            stmt.setString(1, arr[0]); 
            stmt.setString(2, arr[1]); 
            stmt.setString(3, arr[2]); 
            
            int count = stmt.executeUpdate(); 
            System.out.println(count); 
          }
              
                            
    
           }
           catch (Exception e) {
                System.err.println("Kann nicht verbinden!");
                }
                
                    
                }
}
    


w konsoli widaet 
Код

Verbunden+++
0
0
0
0
0
0
0
0


kolwo '0'  rawno kolwu strok w fajle
PM MAIL   Вверх
cube
Дата 3.9.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Цитата(viktorrrrrr @ 3.9.2008,  15:06)
kolwo '0'  rawno kolwu strok w fajle

И так вы выполняете UPDATE вы пытаетесь обновить записи в базе данных)))
Существует несколько видов запроса в базу основные это UPDATE, SELECT, INSERT и DELETE.
В вашем случае вы пытаетесь обновить существующие записи в таблице, то что вы видите в консоли означает что 0 строк были обновлены в таблице базы данных...

Вам нужно использовать запрос INSERT для вставки в таблицу новых записей, и тогда в консоли вы должны увидеть 1 это значит что 1 строка была добавлена в базу. Сколько вы увидете 1, столько строк было добавлено из файла в базу!

Исправьте ваш запрос на INSERT запрос, и выгрузка должна сработать! удачи!

Это сообщение отредактировал(а) cube - 3.9.2008, 15:33
PM MAIL   Вверх
viktorrrrrr
Дата 3.9.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



 smile 

Код

PreparedStatement stmt = conn.prepareStatement("insert into strasse  (STR_NAME,N_STRNAME) values (?,?) "); 

no nebolschaja problema

1,"A.-Bebel-Strasse","August-Bebel-Str."   - eto struktura fajla



str_id | STR_NAME                | N_STRNAME | -   eto tabliza
----------------------------------------------------------   
        
1          ""A.-Bebel-Strasse"" | ""A.-Bebel-Str."""
2          ""A.-Bebel-Strasse"" | ""A.-Bebel-Str."""


 kowichki ne ubiraet 



Это сообщение отредактировал(а) viktorrrrrr - 3.9.2008, 17:19
PM MAIL   Вверх
Shklyar
Дата 3.9.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 28.11.2007
Где: Kyiv

Репутация: 2
Всего: 3



Посмотрите как выглядят элементы String вашего массива (видимо с кавычками - нужно, сперва их соответствующим образом обработать).
--------------------
https://www.youtube.com/watch?v=JZN8Xaebs_U
PM WWW   Вверх
cube
Дата 4.9.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 2
Всего: 3



Цитата(Shklyar @ 3.9.2008,  18:09)
Посмотрите как выглядят элементы String вашего массива (видимо с кавычками - нужно, сперва их соответствующим образом обработать).

он прав, они точно у тебя с кавычками, у тебя есть два варианта
так:
Код

...
            stmt.setString(1, arr[0]); 
            stmt.setString(2, arr[1].replaceAll("\"", "")); 
            stmt.setString(3, arr[2].replaceAll("\"", ""));
...

или
Код

...
            stmt.setString(1, arr[0]); 
            stmt.setString(2, arr[1].substring(1, arr[1].length()-1)); 
            stmt.setString(3, arr[2].substring(1, arr[2].length()-1));
...

при чем второй вариант лучше, пото му как в первом, все кавычки которые будут найдены в тексте будут удалены, во втором случае только первый и последний символ, а как я уже это понял, у тебя это кавычки ;) попробуй так!

Это сообщение отредактировал(а) cube - 4.9.2008, 09:54
PM MAIL   Вверх
viktorrrrrr
Дата 4.9.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



 smile  smile  smile 
wsem ogromnoe spasibo wse robotaet

dalsche tak !!!!

Это сообщение отредактировал(а) viktorrrrrr - 4.9.2008, 10:15
PM MAIL   Вверх
viktorrrrrr
Дата 30.9.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



Ok

Это сообщение отредактировал(а) viktorrrrrr - 30.9.2008, 11:59
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.