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

Поиск:

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


Новичок



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

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



всем  привет возникла проблема при импорте в базу 
мещаю пробелы в строке
Код

       2;Dorfstr. 1 Wohngemeinscha ;39606  ;Meseberg                  
       3;Zettlersweg 6a            ;39606  ;Iden                      
       4;Priemern Nr.2             ;39606  ;Bretsch                   
       5;Krumker Strasse 7         ;39606  ;Osterburg                 
       6;Bahnhofstr. 6a            ;39624  ;Meßdorf                   



как их удалитъ
PM MAIL   Вверх
DenisSh
Дата 17.9.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если удалить пробелы то функция String.trim(). Но видимо вы просто неправильно вставляете базу, должны быть кавычки

Код

      2;"Dorfstr. 1 Wohngemeinscha ";"39606  ";Meseberg                  
       3;"Zettlersweg 6a            ";"39606  ";Iden                      



нужен ваш код чтобы конкретней объяснить.


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


Новичок



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

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



Код

public void baseImp() {
        
           try {
               
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(url, user, pass);
        System.out.println("Verbunden+++");
        
        FileInputStream fis = new FileInputStream("in/kund_dat.asc"); 
        PreparedStatement stmt = conn.prepareStatement
        ("insert into kunde_dat (NUMMER,STRASSE,PLZ,ORT) values (?,?,?,?) "); 
        BufferedReader in = new BufferedReader(new InputStreamReader(fis,"Windows-1252"));
        
        
        while ((str = in.readLine()) != null) 
          {
            String[] arr = str.split(";"); 
          
        
         
        stmt.setString(1, arr[0]); 
            stmt.setString(2, arr[1]);
            stmt.setString(3, arr[2]); 
            stmt.setString(4, arr[3]);
         
         int count = stmt.executeUpdate(); 
            System.out.println(count); 
          }
            }
           catch (Exception e) {
                System.err.println("Kann nicht verbinden!");
                }
                                    
                }
    
    

в базу все принимается , но при  сравнении он не находит данные так как они с пробелами
а нет ковычек потому что фаил .asc   функция String.trim() не подходит она убирает в начле и в конце

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


Опытный
**


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

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



ох Виктор)))
Я же кажется тебе уже писал, используй trim()
Но это еще не все))
Не только проблема в пробелах смотрим:
(NUMMER,STRASSE,PLZ,ORT) 
Код

       2;Dorfstr. 1 Wohngemeinscha ;39606  ;Meseberg                  
       3;Zettlersweg 6a            ;39606  ;Iden                      
       4;Priemern Nr.2             ;39606  ;Bretsch                   
       5;Krumker Strasse 7         ;39606  ;Osterburg                 
       6;Bahnhofstr. 6a            ;39624  ;Meßdorf                   

из этого кусочка наверное следует что первое поле это NUMMER и оно будет всегда числовое
второе поле это STRASSE оно у вас текстовое, поле PLZ у вас тоже числовое, а ORT - текстовое

Теперь посмотрите как была создана ваша таблица kunde_dat, такие ли свойства у выше перечисленных полей? Если да то меняем это

Код

            stmt.setString(1, arr[0]); 
            stmt.setString(2, arr[1]);
            stmt.setString(3, arr[2]); 
            stmt.setString(4, arr[3]);


на это

Код

try{
            stmt.setInt(1, Integer.parseInt(arr[0].trim())); 
            stmt.setString(2, arr[1].trim());
            stmt.setInt(3, Integer.parseInt(arr[2].trim())); 
            stmt.setString(4, arr[3].trim());
}catch (NumberFormatException nfe) {nfe.printStackTrace();}


эта строка
Код

            stmt.setInt(1, Integer.parseInt(arr[0].trim())); 

обозначает удалить пробелы с концов строк [0] элемента массива, разобрать его как число и вставить в запрос как числовое значение

(проверь синтаксис, я мог ошибиться в коде и запускай)))
з.ы. читай побольше документации по jdbc, она есть как на русском, так на английском и даже на немецком языках, удачи! ;)


Это сообщение отредактировал(а) cube - 17.9.2008, 12:35
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.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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