BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 06:20

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Получение и запись данных в Mysql
СообщениеДобавлено: 12 дек 2014, 18:44 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Здравствуйте, версия биллинга 5.1. Как установить соединение с mysql, которая находится на удаленном сервере, в скрипте поведения? Стоит задача сделать автоматическую запись данных в mysql при создании договора. Пробовал сделать выборку данных так:
Код:

import java.sql.Connection;

import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.util.MailMsg;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.event.events.ContractCreatedEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;


 
   public void onEvent( event, setup, con, conSlave )
   {
      static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
      String DB_URL = "jdbc:mysql://172.16.0.15/redmine_default";

     //  Database credentials
      String USER = "root";
      String PASS = "root";
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
      Statement stmt = conn.createStatement();
       String sql = "SELECT name FROM projects limit 1";
       ResultSet rs = stmt.executeQuery(sql);
      rs.next();

       String first = rs.getString("name");

       print("First: " + first);
     
     
      rs.close();
      stmt.close();
      conn.close();
   }



В результате биллинг зависает при нажатии кнопки создать договор


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 12 дек 2014, 19:09 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
добавте в скрипт логирование после каждой строки и посмотрите на чем зависает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 12 дек 2014, 20:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Подозреваю что на попытке подключения к удаленной БД.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 12 дек 2014, 20:14 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Я подключался так:
Код:
      try {
         String user = setup.get("xxx.db.user");
         String pswd = setup.get("xxx.db.pswd");
         String dbUrl = setup.get("xxx.db.url");
         String dbDriver = setup.get("xx.db.driver");

         DriverManager.registerDriver((Driver)Class.forName(dbDriver).newInstance());
         neoConn = DriverManager.getConnection(dbUrl, user, pswd);
      } catch (Exception e) {
         log.error("Cannot connect to FTTx DB: " + e.getMessage());
         e.printStackTrace();
         return false;
      }

Дальше neoConn можно использовать как обычный коннекшен.

И, кстати, с сервера биллинга клиентом mysql можно к удалённой базе подключиться?

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 12:20 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Если делать моим способом, он ругается на то, что не может найти jdbc, так как я его и не подключал. В java это делается путем добавления jar и импорта библиотеки, а тут-то как быть? Тот же вопрос касательно библиотеки логов. Логирование сделал просто функцией print
Код:
         String user = setup.get("xxx.db.user");
         String pswd = setup.get("xxx.db.pswd");
         String dbUrl = setup.get("xxx.db.url");
         String dbDriver = setup.get("xx.db.driver");

За место xxx что надо подставить?

vkulakov писал(а):
И, кстати, с сервера биллинга клиентом mysql можно к удалённой базе подключиться?


У меня биллинг находистся на одном адресе, а база данных редмайна на другом.


Последний раз редактировалось Inspire 15 дек 2014, 12:36, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 12:33 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Inspire писал(а):
За место xxx что надо подставить?

Можете setup.get("xx.db.driver") на строки со своими значениями заменить. А вообще, если у вас биллинг работает, значит он подключился к базе и значит, что дополнительные библиотеки не нужны. В общем случае свои библиотеки нужно класть в BGBillingServer/lib/ext или app.

Попробуйте в своём коде подключится к базе биллинга с теми параметрами, которые указаны в BGBillingServer/data/data.properties. Если всё заведётся, значит проблема с доступом к удалённой базе. (В моём предыдущем примере можете убрать "xxx." и код сразу подхватит эти параметры.)

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 13:47 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
vkulakov писал(а):
Inspire писал(а):
За место xxx что надо подставить?

Можете setup.get("xx.db.driver") на строки со своими значениями заменить. А вообще, если у вас биллинг работает, значит он подключился к базе и значит, что дополнительные библиотеки не нужны. В общем случае свои библиотеки нужно класть в BGBillingServer/lib/ext или app.

Попробуйте в своём коде подключится к базе биллинга с теми параметрами, которые указаны в BGBillingServer/data/data.properties. Если всё заведётся, значит проблема с доступом к удалённой базе. (В моём предыдущем примере можете убрать "xxx." и код сразу подхватит эти параметры.)



Вариант 1:
Подставил настройки базы биллинга, все заработало таким вариантом
Код:
     try{
           
         String DB_URL = "jdbc:mysql://адрес/bgbilling";
         String USER = "user";
         String PASS = "pass";
         Class.forName("com.mysql.jdbc.Driver");
         Connection conn =  DriverManager.getConnection(DB_URL,USER,PASS);
         Statement stmt = conn.createStatement();
         String sql = "SELECT * FROM contract limit 1";
         ResultSet rs = stmt.executeQuery(sql);
         rs.next();

         String first = rs.getString("title");

         print("First: " + first);
     
     
         rs.close();
         stmt.close();
         conn.close();
} catch(Exception e){
print(e.getMessage());
e.printStackTrace();

}



Причем, когда подставил адрес другой базы, выдало ошибку :
Communications link failure
Last packet sent to the server was 0 ms ago.

Вариант 2:
Код:
     try{
           
         String user = setup.get("db.user");
         String pswd = setup.get("db.pswd");
         String dbUrl = setup.get("db.url");
         String dbDriver = setup.get("db.driver");

         DriverManager.registerDriver((Driver)Class.forName(dbDriver).newInstance());
         neoConn = DriverManager.getConnection(dbUrl, user, pswd);
        Statement stmt = neoConn.createStatement();
        String sql = "SELECT * FROM contract limit 1";
        ResultSet rs = stmt.executeQuery(sql);
       rs.next();

         String first = rs.getString("title");

         print("First: " + first);
     
      //STEP 6: Clean-up environment
      rs.close();
      stmt.close();
      conn.close();
} catch(Exception e){
print(e.getMessage());
e.printStackTrace();

}

Выдает ошибку Typed variable declaration : Error in method invocation: Method get( java.lang.String ) not found in class'ru.bitel.bgbilling.server.util.Setup' : at Line: 21 : in file: Function [id:7; title:create_ticket_task] : setup .get ( "db.user" ).
Причем пробовал и просто "user" и "db.user" и логин базы за место user подаставлять.

Проблема в том, что база биллинга на одном сервере, а база редмайна, куда мне надо подконектиться, на другом =/ Есть ли какой-то выход из этой ситуации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 14:00 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Забейте на мой вариант. Если к базе биллинга коннектится, а к вашей нет, то проблема именно с доступом к другой базе. Делайте ping, пробуйте использовать mysql-клиент на сервере биллинга... Тут-то элементарно всё должно быть.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 16:27 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
В общем из биллинга можно подконектиться к другой базе. Просто пинга не было. Ток вот выводит пока вопросы вместо русских букв, а так работает. Причем в нет бинсе нормально выводится. Может, дело в настройках биллинга?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 18:05 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
В общем из биллинга можно подконектиться к другой базе. Просто пинга не было. Ток вот выводит пока вопросы вместо русских букв, а так работает. Причем в нет бинсе нормально выводится. Может, дело в настройках биллинга?

какая кодировка в базе? какая в таблицах где хранятся нужные данные ? какая в db.url ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 18:31 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
show create database redmine - utf8
show create table news - utf8
show variables like "char%":
character_set_client | koi8r |
| character_set_connection | koi8r |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | koi8r |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/

show variables like "coll%":
collation_connection | koi8r_general_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci

Лично на мой взгляд, тут полная ж..па. Редмайн работает давно, настраивал не я. Если менять кодировку, то и он может полететь. Просто меня обнадеживает тот факт, что в нетбинсе отображаются русские буквы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 18:53 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
show create database redmine - utf8
show create table news - utf8
show variables like "char%":
character_set_client | koi8r |
| character_set_connection | koi8r |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | koi8r |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/

show variables like "coll%":
collation_connection | koi8r_general_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci

Лично на мой взгляд, тут полная ж..па. Редмайн работает давно, настраивал не я. Если менять кодировку, то и он может полететь. Просто меня обнадеживает тот факт, что в нетбинсе отображаются русские буквы.



нормально там все.. utf8..вы у себя в url(тот, который к этой базе) проставьте
Код:
characterEncoding=utf8
и возможно нормально заработает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 19:24 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Уже пробовал так
Код:
jdbc:mysql://адрес/redmine?characterEncoding=utf8
. Все равно выводит ????.
То что там кодировка соединения и тд koi8r - нормально?
И
Код:
 String query = "set names utf8";
    stmt.execute(query);

    query = "set character set utf8";
    stmt.execute(query);

Тоже не помогает. И cp1251 пробовал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 19:40 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Inspire писал(а):
Уже пробовал так
Код:
jdbc:mysql://адрес/redmine?characterEncoding=utf8
. Все равно выводит ????.

Глупый вопрос: а вы после установки кодировки в урле запись в редмайне новую создаёте или всё старую смотрите?

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 19:48 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
vkulakov писал(а):
Inspire писал(а):
Уже пробовал так
Код:
jdbc:mysql://адрес/redmine?characterEncoding=utf8
. Все равно выводит ????.

Глупый вопрос: а вы после установки кодировки в урле запись в редмайне новую создаёте или всё старую смотрите?


А если мне надо старую вывести?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 15 дек 2014, 20:10 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
Уже пробовал так
Код:
jdbc:mysql://адрес/redmine?characterEncoding=utf8
. Все равно выводит ????.
То что там кодировка соединения и тд koi8r - нормально?


сложно сказать ..это же кодировка соединения вашего клиента консольного .

В общем случае бывает что данные в базе к одной кодировке, а пишут туда реально в другой кодировке. И нужно делать двойное перекодирование чтобы оттуда что-то вытащить .. Это надо на месте разбираться, перебирать, пробовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 13:23 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Хоть кодировка таблиц и бд в utf8 с сопоставлением utf8_general_ci, но
stark писал(а):
Inspire писал(а):
| character_set_server | latin1

кодировка сервера latin1. Мне кажется дело в этом. Может, он ее в латин кодирует а потом в utf8.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 13:32 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
Хоть кодировка таблиц и бд в utf8 с сопоставлением utf8_general_ci, но
stark писал(а):
Inspire писал(а):
| character_set_server | latin1

кодировка сервера latin1. Мне кажется дело в этом. Может, он ее в латин кодирует а потом в utf8.



кодировка сервера это всего лишь дефолтная кодировка, в которой новые базы создаются. Кодировка базы более приоритетная, она используется для того чтобы задавать кодировки новых создаваемых таблиц. А кодировка таблицы это уже самая главная кодировка, которая и определяет какие там данные там хранятся. Но бывает что реально там хранятся данные не в той кодировке..Тут надо смотреть настройки того, кто туда пишет и читает - у него там может стоять левая кодировка и он может реально данные перекодировать по своему. У нас такое бывало когда конвертировали базу netup, иногда ее криво изначально настраивали и там было двойное перекодирование, netup работал, а чтобы достать оттуда приходилось немного помучаться с подбором что там на само деле, реально данные были не в той кодировке, которая была заявлена в таблице.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 15:28 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Если делать запись в базу из скрипта поведения, то она записывается нормально, т.е. русские букы. А при выводе на консоль биллинга выводятся вопросы. С кодировкой базы все ок. Есть где-нибудь возможность поменять кодировку консоли вывода биллинга?
Это не помогло:
# Кодировка файлов динамического кода (UTF-8 предпочтительно, по умолчанию)
dynamic.src.encoding=UTF-8
# Каталог размещения динамического кода относительно BGBillingServer
dynamic.src.dir=dyn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 16:15 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
это точно ни при чём.
в общем, вопрос требует отдельного усиленного изучения, возможно с доступом итд.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 18:26 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Inspire писал(а):
vkulakov писал(а):
Inspire писал(а):
Уже пробовал так
Код:
jdbc:mysql://адрес/redmine?characterEncoding=utf8
. Все равно выводит ????.

Глупый вопрос: а вы после установки кодировки в урле запись в редмайне новую создаёте или всё старую смотрите?


А если мне надо старую вывести?


Что-то я не понял, к чему пришли. Сейчас нормально всё отображается и проблема только в выводе на консоль? Чем заходите на сервер биллинга? Если PuTTY, то там нужно указать правильный Translation и выбрать подходящий шрифт.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 18:31 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
Если делать запись в базу из скрипта поведения, то она записывается нормально, т.е. русские букы. А при выводе на консоль биллинга выводятся вопросы. С кодировкой базы все ок. Есть где-нибудь возможность поменять кодировку консоли вывода биллинга?
Это не помогло:
# Кодировка файлов динамического кода (UTF-8 предпочтительно, по умолчанию)
dynamic.src.encoding=UTF-8
# Каталог размещения динамического кода относительно BGBillingServer
dynamic.src.dir=dyn



у вас консоль в какой системе? какая там кодировка ? utf8 ?
ну поставьте -Dfile.encoding=UTF-8 в параметрах запуска сервера биллинга.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 18:42 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
Выводятся данные в клиенте биллинга. Захожу на сервер через клиент биллинга с помощью такого скрипта:
Код:
@echo off

set BGBILLING_DIR=.
set CLASSPATH=%BGBILLING_DIR%;%BGBILLING_DIR%\lib\*

if not exist %BGBILLING_DIR%\lib.update goto m0

copy %BGBILLING_DIR%\lib.update\* %BGBILLING_DIR%\lib
rmdir /q /s %BGBILLING_DIR%\lib.update

:m0
start c:\Java\jre6\bin\javaw -Dupdate.folder=lib.update -Djavax.net.ssl.trustStore=.keystore -Dsun.net.client.defaultConnectTimeout=1000 -Xmx256m -Duser.language=ru -Duser.region=RU -cp %CLASSPATH% bitel.billing.ShellFrame


Вставлял -Dfile.encoding=UTF-8 так
Код:
start c:\Java\jre6\bin\javaw -Dupdate.folder=lib.update -Djavax.net.ssl.trustStore=.keystore -Dsun.net.client.defaultConnectTimeout=1000 -Xmx256m -Duser.language=ru -Dfile.encoding=UTF-8 -Duser.region=RU -cp %CLASSPATH% bitel.billing.ShellFrame

Не помогло. Кстати, бд и таблицы на биллинге в кодировке cp1251. Пробовал -Dfile.encoding=cp1251 и -Dfile.encoding=windows-1251. Тоже не помогло.


Последний раз редактировалось Inspire 16 дек 2014, 18:48, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 18:48 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Присоединяюсь к ничего не понявшим выше. За 24 сообщения понятнее не становится проблема. Где "в клиенте выводятся данные"? Что такое "консоль вывода биллинга"? Что не работает то? Как что и где вы "смотрите в нетбинсе" и там всё нормально - это самое непонятное. В какой момент кодировка портится то?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 18:51 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
В клиенте в логах скрипта выводятся данные. При записи данных через скрипт поведения в базу данных все ок, русские текст отображается нормально в базе данных. При выводе данных из базы командой Print в логах скрипта поведения вопросы за место русского текста. В ide netbeans через функцию system.out.println(rs.getString("title") вывожу русский текст на экран. Там выводится правильно.
А в биллинге вот-с как:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 19:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
не понял, так проблема уже не с другой базой данных, а с нашей , где вывод скрипта хранится ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 19:26 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
stark писал(а):
не понял, так проблема уже не с другой базой данных, а с нашей , где вывод скрипта хранится ?

База данных, откуда я вывожу данные, все та же - бд редмайна, которая находится на другом сервере. Там кодировка бд, таблиц, полей utf8. Скрипт поведения писал в биллинге в разделе сервис -> автоматизация -> фукнции скриптов поведения. Код скрипта поведения:
Код:
public void onEvent( event, setup, con, conSlave )
 
   {
     try{
           
        String DB_URL = "jdbc:mysql://адрес редмайна/redmine?characterEncoding=utf8";
        String USER = "user";
        String PASS = "pass";
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

       Statement stmt = conn.createStatement();
       String sql = "select * from news";

        ResultSet rs = stmt.executeQuery(sql);
        rs.next();

        String first = rs.getString("title");

        print("First: " + first);

   
        rs.close();
        stmt.close();
        conn.close();
} catch(Exception e){
    print(e.getMessage());
    e.printStackTrace();

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 19:48 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
А если написать
Код:
 print("привет" );

нормально выводит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 19:57 
Не в сети

Зарегистрирован: 21 ноя 2014, 15:11
Сообщения: 393
Карма: 0
stark писал(а):
А если написать
Код:
 print("привет" );

нормально выводит?

Нет, знаки вопроса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Получение и запись данных в Mysql
СообщениеДобавлено: 16 дек 2014, 20:14 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Inspire писал(а):
stark писал(а):
А если написать
Код:
 print("привет" );

нормально выводит?

Нет, знаки вопроса


так что же вы нас запутываете своими внешними базами..Причем тут они ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.171s | 78 Queries | GZIP : On ]