powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / запрос к базе
13 сообщений из 13, страница 1 из 1
запрос к базе
    #39022950
mixon21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.
Ребята подскажите почему при добавлении данных в базу в базе появляются знаки вопроса

Код: java
1.
2.
3.
4.
5.
6.
st.executeUpdate("INSERT INTO anp(dateTable, region, A92, A95, A95p, DT, GAS) VALUES ('2015-08-04','"+listRegion.get(i)+"','"
                                                                                                                +listA92.get(i)+"','"
                                                                                                                +listA95.get(i)+"','"
                                                                                                                +listA95p.get(i)+"','"
                                                                                                                +listDT.get(i)+"','"
                                                                                                                +listGAS.get(i)+"')");




а если я делаю запрос в MySql редакторе то все нормально.


Вопрос как исправить.
...
Рейтинг: 0 / 0
запрос к базе
    #39023018
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixon21,
Посмотри в какой кодировке БД и таблица.
Если они отличны от UTF-8, то нужно изменить кодировку БД и таблиц.
Ну или при подключении указывать из какой в какую кодировку преобразовывать данные.
...
Рейтинг: 0 / 0
запрос к базе
    #39023061
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
запрос к базе
    #39023079
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixon21,

попробуйте разобраться с кодировкой и попробуйте вот так , может поможет
...
Рейтинг: 0 / 0
запрос к базе
    #39024604
mixon21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребята а можно пример а то не могу разобраться.
Спасибо.
...
Рейтинг: 0 / 0
запрос к базе
    #39024613
mixon21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот мой код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
          for(int i=0;i<listFirm.size();i++){
                  
                  prs=myConnection.prepareCall("INSERT INTO anp(dateTable, region, A92, A95, A95p, DT, GAS) VALUES (?,?,?,?,?,?,?)");
                   prs.setString(1, date);
                   prs.setString(2,listRegion.get(i));
                   prs.setString(3,listA92.get(i));
                   prs.setString(4,listA95.get(i));
                   prs.setString(5,listA95p.get(i));
                   prs.setString(6,listDT.get(i));
                   prs.setString(7,listGAS.get(i));
                       System.out.println(date);
                  
                  }
...
Рейтинг: 0 / 0
запрос к базе
    #39024617
mixon21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все равно пишет кракозяблы
...
Рейтинг: 0 / 0
запрос к базе
    #39024666
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит, несовпадение кодировок текста в Java-коде и в базе. В Java-коде всегда надо использовать UTF-8 (для культурности). Проверить, не задано ли случайно в настройках проекта Windows-1251. Если да, то исправить.
В MySql кодировка может задаваться в нескольких местах:
- по умолчанию для базы
- по умолчанию для таблицы
- отдельно для каждого текстового поля.

Это показывается в визуальном редакторе или можно узнать SQL командой.
Для таблицы это команда:
SHOW CREATE TABLE имя_таблицы;

Будет показан оператор CREATE TABLE, который можно было бы использовать для создания этой таблицы.
В нём конце после списка всех полей может быть CHARACTER SET=имя_кодировки_по_умолчанию.
Тогда это она, кодировка по умолчанию для таблицы. В текстовых полях могут быть отдельные указания кодировки:

имя_поля TEXT CHARACTER SET имя_кодировки

(текстовые поля могут иметь и другие типы, кроме TEXT).
Если кодировка не указана ни там, ни сям, то используется кодировка по умолчанию базы, которую можно узнать по оператору:

SHOW CREATE SCHEMA имя_базы или что то же самое схемы;
или что тоже самое
SHOW CREATE DATABASE имя_базы;

Обнаружив разницу в кодировках базы и Java-кода, можно или привести их в соответствие, или вставить в Java-код перекодировку строкового значения.
...
Рейтинг: 0 / 0
запрос к базе
    #39024765
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixon21все равно пишет кракозяблы
А во время отладки значения переменных нормально видны? Отладкой пользуетесь?
...
Рейтинг: 0 / 0
запрос к базе
    #39024771
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixon21listRegion.get(i)


Да, забыл. Поскольку текстовые строки не записаны в исходном коде программы, а получаются подобными функциями, то надо узнать, какая кодировка используется там, где они создаются, или посмотреть глазами кодировку результата. Совет использовать PreparedStatement не имел смысла, т.к. не относится к кодировке.
...
Рейтинг: 0 / 0
запрос к базе
    #39024776
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MСовет использовать PreparedStatement не имел смысла
Фига себе заява. Это ты вот это вот на полном серьезе?

Partisan M, т.к. не относится к кодировке.
Ну, да. Относится к быдлокодингу.
...
Рейтинг: 0 / 0
запрос к базе
    #39024818
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixon21все равно пишет кракозяблы

mixon21, есть 100 способов сломать кодировку строк символов, и только один способ этого не сделать.
Гадать, где у тебя ошибка контрпродуктивно.
По шагам пройди по всем этапам записи данных в БД, и чтения её оттуда, контролируя результат на каждом шаге,
и найдёшь ошибку.

При этом хорошо бы представлять, как именно должна храниться информация в правильном виде, для этого
в mysql консольке (т.е. не средствами твоей программы) создай похожую запись также с национальными строками,
и проверяй всегда обе записи -- эталонную и твою новую.
...
Рейтинг: 0 / 0
запрос к базе
    #39024975
mixon21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо нашел как можно исправить.

Код: java
1.
static final String db_url="jdbc:mysql://localhost:3306/priceoil?useUnicode=true&characterEncoding=utf8";
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / запрос к базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]